Coverage Report

Created: 2026-09-14 07:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libjxl/lib/jxl/dec_transforms-inl.h
Line
Count
Source
1
// Copyright (c) the JPEG XL Project Authors. All rights reserved.
2
//
3
// Use of this source code is governed by a BSD-style
4
// license that can be found in the LICENSE file.
5
6
#include <cstring>
7
8
#include "lib/jxl/base/compiler_specific.h"
9
#include "lib/jxl/frame_dimensions.h"
10
11
#if defined(LIB_JXL_DEC_TRANSFORMS_INL_H_) == defined(HWY_TARGET_TOGGLE)
12
#ifdef LIB_JXL_DEC_TRANSFORMS_INL_H_
13
#undef LIB_JXL_DEC_TRANSFORMS_INL_H_
14
#else
15
#define LIB_JXL_DEC_TRANSFORMS_INL_H_
16
#endif
17
18
#include <cstddef>
19
#include <hwy/highway.h>
20
21
#include "lib/jxl/ac_strategy.h"
22
#include "lib/jxl/dct-inl.h"
23
#include "lib/jxl/dct_scales.h"
24
HWY_BEFORE_NAMESPACE();
25
namespace jxl {
26
namespace HWY_NAMESPACE {
27
namespace {
28
29
// These templates are not found via ADL.
30
using hwy::HWY_NAMESPACE::MulAdd;
31
32
// Computes the lowest-frequency LF_ROWSxLF_COLS-sized square in output, which
33
// is a DCT_ROWS*DCT_COLS-sized DCT block, by doing a ROWS*COLS DCT on the
34
// input block.
35
template <size_t DCT_ROWS, size_t DCT_COLS, size_t LF_ROWS, size_t LF_COLS,
36
          size_t ROWS, size_t COLS>
37
JXL_INLINE void ReinterpretingDCT(const float* input, const size_t input_stride,
38
                                  float* output, const size_t output_stride,
39
                                  float* JXL_RESTRICT block,
40
5.29M
                                  float* JXL_RESTRICT scratch_space) {
41
5.29M
  static_assert(LF_ROWS == ROWS,
42
5.29M
                "ReinterpretingDCT should only be called with LF == N");
43
5.29M
  static_assert(LF_COLS == COLS,
44
5.29M
                "ReinterpretingDCT should only be called with LF == N");
45
5.29M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
5.29M
                                 scratch_space);
47
5.29M
  if (ROWS < COLS) {
48
5.07M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
11.1M
      for (size_t x = 0; x < LF_COLS; x++) {
50
8.30M
        output[y * output_stride + x] =
51
8.30M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
8.30M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
8.30M
      }
54
2.81M
    }
55
3.04M
  } else {
56
11.5M
    for (size_t y = 0; y < LF_COLS; y++) {
57
45.9M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
37.4M
        output[y * output_stride + x] =
59
37.4M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
37.4M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
37.4M
      }
62
8.47M
    }
63
3.04M
  }
64
5.29M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
977k
                                  float* JXL_RESTRICT scratch_space) {
41
977k
  static_assert(LF_ROWS == ROWS,
42
977k
                "ReinterpretingDCT should only be called with LF == N");
43
977k
  static_assert(LF_COLS == COLS,
44
977k
                "ReinterpretingDCT should only be called with LF == N");
45
977k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
977k
                                 scratch_space);
47
977k
  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
977k
  } else {
56
1.95M
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.93M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.95M
        output[y * output_stride + x] =
59
1.95M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.95M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.95M
      }
62
977k
    }
63
977k
  }
64
977k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
1.75M
                                  float* JXL_RESTRICT scratch_space) {
41
1.75M
  static_assert(LF_ROWS == ROWS,
42
1.75M
                "ReinterpretingDCT should only be called with LF == N");
43
1.75M
  static_assert(LF_COLS == COLS,
44
1.75M
                "ReinterpretingDCT should only be called with LF == N");
45
1.75M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.75M
                                 scratch_space);
47
1.75M
  if (ROWS < COLS) {
48
3.50M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
5.25M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.50M
        output[y * output_stride + x] =
51
3.50M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.50M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.50M
      }
54
1.75M
    }
55
1.75M
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
1.75M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
548k
                                  float* JXL_RESTRICT scratch_space) {
41
548k
  static_assert(LF_ROWS == ROWS,
42
548k
                "ReinterpretingDCT should only be called with LF == N");
43
548k
  static_assert(LF_COLS == COLS,
44
548k
                "ReinterpretingDCT should only be called with LF == N");
45
548k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
548k
                                 scratch_space);
47
548k
  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
548k
  } else {
56
1.64M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.29M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.19M
        output[y * output_stride + x] =
59
2.19M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.19M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.19M
      }
62
1.09M
    }
63
548k
  }
64
548k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
4.83k
                                  float* JXL_RESTRICT scratch_space) {
41
4.83k
  static_assert(LF_ROWS == ROWS,
42
4.83k
                "ReinterpretingDCT should only be called with LF == N");
43
4.83k
  static_assert(LF_COLS == COLS,
44
4.83k
                "ReinterpretingDCT should only be called with LF == N");
45
4.83k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
4.83k
                                 scratch_space);
47
4.83k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
4.83k
  } else {
56
9.67k
    for (size_t y = 0; y < LF_COLS; y++) {
57
24.1k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
19.3k
        output[y * output_stride + x] =
59
19.3k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
19.3k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
19.3k
      }
62
4.83k
    }
63
4.83k
  }
64
4.83k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
6.45k
                                  float* JXL_RESTRICT scratch_space) {
41
6.45k
  static_assert(LF_ROWS == ROWS,
42
6.45k
                "ReinterpretingDCT should only be called with LF == N");
43
6.45k
  static_assert(LF_COLS == COLS,
44
6.45k
                "ReinterpretingDCT should only be called with LF == N");
45
6.45k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
6.45k
                                 scratch_space);
47
6.45k
  if (ROWS < COLS) {
48
12.9k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
32.2k
      for (size_t x = 0; x < LF_COLS; x++) {
50
25.8k
        output[y * output_stride + x] =
51
25.8k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
25.8k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
25.8k
      }
54
6.45k
    }
55
6.45k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
6.45k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
276k
                                  float* JXL_RESTRICT scratch_space) {
41
276k
  static_assert(LF_ROWS == ROWS,
42
276k
                "ReinterpretingDCT should only be called with LF == N");
43
276k
  static_assert(LF_COLS == COLS,
44
276k
                "ReinterpretingDCT should only be called with LF == N");
45
276k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
276k
                                 scratch_space);
47
276k
  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
276k
  } else {
56
828k
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.76M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.20M
        output[y * output_stride + x] =
59
2.20M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.20M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.20M
      }
62
552k
    }
63
276k
  }
64
276k
}
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
462k
                                  float* JXL_RESTRICT scratch_space) {
41
462k
  static_assert(LF_ROWS == ROWS,
42
462k
                "ReinterpretingDCT should only be called with LF == N");
43
462k
  static_assert(LF_COLS == COLS,
44
462k
                "ReinterpretingDCT should only be called with LF == N");
45
462k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
462k
                                 scratch_space);
47
462k
  if (ROWS < COLS) {
48
1.38M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.62M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.69M
        output[y * output_stride + x] =
51
3.69M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.69M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.69M
      }
54
924k
    }
55
462k
  } 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
462k
}
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
982k
                                  float* JXL_RESTRICT scratch_space) {
41
982k
  static_assert(LF_ROWS == ROWS,
42
982k
                "ReinterpretingDCT should only be called with LF == N");
43
982k
  static_assert(LF_COLS == COLS,
44
982k
                "ReinterpretingDCT should only be called with LF == N");
45
982k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
982k
                                 scratch_space);
47
982k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
982k
  } else {
56
4.91M
    for (size_t y = 0; y < LF_COLS; y++) {
57
19.6M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
15.7M
        output[y * output_stride + x] =
59
15.7M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
15.7M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
15.7M
      }
62
3.92M
    }
63
982k
  }
64
982k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
28.5k
                                  float* JXL_RESTRICT scratch_space) {
41
28.5k
  static_assert(LF_ROWS == ROWS,
42
28.5k
                "ReinterpretingDCT should only be called with LF == N");
43
28.5k
  static_assert(LF_COLS == COLS,
44
28.5k
                "ReinterpretingDCT should only be called with LF == N");
45
28.5k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
28.5k
                                 scratch_space);
47
28.5k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
28.5k
  } else {
56
142k
    for (size_t y = 0; y < LF_COLS; y++) {
57
1.02M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
912k
        output[y * output_stride + x] =
59
912k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
912k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
912k
      }
62
114k
    }
63
28.5k
  }
64
28.5k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
33.5k
                                  float* JXL_RESTRICT scratch_space) {
41
33.5k
  static_assert(LF_ROWS == ROWS,
42
33.5k
                "ReinterpretingDCT should only be called with LF == N");
43
33.5k
  static_assert(LF_COLS == COLS,
44
33.5k
                "ReinterpretingDCT should only be called with LF == N");
45
33.5k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
33.5k
                                 scratch_space);
47
33.5k
  if (ROWS < COLS) {
48
167k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.20M
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.07M
        output[y * output_stride + x] =
51
1.07M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.07M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.07M
      }
54
134k
    }
55
33.5k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
33.5k
}
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
225k
                                  float* JXL_RESTRICT scratch_space) {
41
225k
  static_assert(LF_ROWS == ROWS,
42
225k
                "ReinterpretingDCT should only be called with LF == N");
43
225k
  static_assert(LF_COLS == COLS,
44
225k
                "ReinterpretingDCT should only be called with LF == N");
45
225k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
225k
                                 scratch_space);
47
225k
  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
225k
  } else {
56
2.02M
    for (size_t y = 0; y < LF_COLS; y++) {
57
16.2M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
14.4M
        output[y * output_stride + x] =
59
14.4M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
14.4M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
14.4M
      }
62
1.80M
    }
63
225k
  }
64
225k
}
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
84
                                  float* JXL_RESTRICT scratch_space) {
41
84
  static_assert(LF_ROWS == ROWS,
42
84
                "ReinterpretingDCT should only be called with LF == N");
43
84
  static_assert(LF_COLS == COLS,
44
84
                "ReinterpretingDCT should only be called with LF == N");
45
84
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
84
                                 scratch_space);
47
84
  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
84
  } else {
56
756
    for (size_t y = 0; y < LF_COLS; y++) {
57
11.4k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
10.7k
        output[y * output_stride + x] =
59
10.7k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
10.7k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
10.7k
      }
62
672
    }
63
84
  }
64
84
}
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
51
                                  float* JXL_RESTRICT scratch_space) {
41
51
  static_assert(LF_ROWS == ROWS,
42
51
                "ReinterpretingDCT should only be called with LF == N");
43
51
  static_assert(LF_COLS == COLS,
44
51
                "ReinterpretingDCT should only be called with LF == N");
45
51
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
51
                                 scratch_space);
47
51
  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
51
  } else {
56
1.68k
    for (size_t y = 0; y < LF_COLS; y++) {
57
53.8k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
52.2k
        output[y * output_stride + x] =
59
52.2k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
52.2k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
52.2k
      }
62
1.63k
    }
63
51
  }
64
51
}
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
65
66
template <size_t S>
67
80.3M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
80.3M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
80.3M
  static_assert(S % 2 == 0, "S should be even");
70
80.3M
  float temp[kDCTBlockSize];
71
80.3M
  constexpr size_t num_2x2 = S / 2;
72
267M
  for (size_t y = 0; y < num_2x2; y++) {
73
750M
    for (size_t x = 0; x < num_2x2; x++) {
74
562M
      float c00 = block[y * kBlockDim + x];
75
562M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
562M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
562M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
562M
      float r00 = c00 + c01 + c10 + c11;
79
562M
      float r01 = c00 + c01 - c10 - c11;
80
562M
      float r10 = c00 - c01 + c10 - c11;
81
562M
      float r11 = c00 - c01 - c10 + c11;
82
562M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
562M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
562M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
562M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
562M
    }
87
187M
  }
88
455M
  for (size_t y = 0; y < S; y++) {
89
2.62G
    for (size_t x = 0; x < S; x++) {
90
2.25G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
2.25G
    }
92
375M
  }
93
80.3M
}
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.80M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.80M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.80M
  static_assert(S % 2 == 0, "S should be even");
70
3.80M
  float temp[kDCTBlockSize];
71
3.80M
  constexpr size_t num_2x2 = S / 2;
72
7.61M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.61M
    for (size_t x = 0; x < num_2x2; x++) {
74
3.80M
      float c00 = block[y * kBlockDim + x];
75
3.80M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
3.80M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
3.80M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
3.80M
      float r00 = c00 + c01 + c10 + c11;
79
3.80M
      float r01 = c00 + c01 - c10 - c11;
80
3.80M
      float r10 = c00 - c01 + c10 - c11;
81
3.80M
      float r11 = c00 - c01 - c10 + c11;
82
3.80M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
3.80M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
3.80M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
3.80M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
3.80M
    }
87
3.80M
  }
88
11.4M
  for (size_t y = 0; y < S; y++) {
89
22.8M
    for (size_t x = 0; x < S; x++) {
90
15.2M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
15.2M
    }
92
7.61M
  }
93
3.80M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.80M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.80M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.80M
  static_assert(S % 2 == 0, "S should be even");
70
3.80M
  float temp[kDCTBlockSize];
71
3.80M
  constexpr size_t num_2x2 = S / 2;
72
11.4M
  for (size_t y = 0; y < num_2x2; y++) {
73
22.8M
    for (size_t x = 0; x < num_2x2; x++) {
74
15.2M
      float c00 = block[y * kBlockDim + x];
75
15.2M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
15.2M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
15.2M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
15.2M
      float r00 = c00 + c01 + c10 + c11;
79
15.2M
      float r01 = c00 + c01 - c10 - c11;
80
15.2M
      float r10 = c00 - c01 + c10 - c11;
81
15.2M
      float r11 = c00 - c01 - c10 + c11;
82
15.2M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
15.2M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
15.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
15.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
15.2M
    }
87
7.61M
  }
88
19.0M
  for (size_t y = 0; y < S; y++) {
89
76.1M
    for (size_t x = 0; x < S; x++) {
90
60.9M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
60.9M
    }
92
15.2M
  }
93
3.80M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.80M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.80M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.80M
  static_assert(S % 2 == 0, "S should be even");
70
3.80M
  float temp[kDCTBlockSize];
71
3.80M
  constexpr size_t num_2x2 = S / 2;
72
19.0M
  for (size_t y = 0; y < num_2x2; y++) {
73
76.1M
    for (size_t x = 0; x < num_2x2; x++) {
74
60.9M
      float c00 = block[y * kBlockDim + x];
75
60.9M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
60.9M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
60.9M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
60.9M
      float r00 = c00 + c01 + c10 + c11;
79
60.9M
      float r01 = c00 + c01 - c10 - c11;
80
60.9M
      float r10 = c00 - c01 + c10 - c11;
81
60.9M
      float r11 = c00 - c01 - c10 + c11;
82
60.9M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
60.9M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
60.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
60.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
60.9M
    }
87
15.2M
  }
88
34.2M
  for (size_t y = 0; y < S; y++) {
89
274M
    for (size_t x = 0; x < S; x++) {
90
243M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
243M
    }
92
30.4M
  }
93
3.80M
}
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
22.9M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
22.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
22.9M
  static_assert(S % 2 == 0, "S should be even");
70
22.9M
  float temp[kDCTBlockSize];
71
22.9M
  constexpr size_t num_2x2 = S / 2;
72
45.9M
  for (size_t y = 0; y < num_2x2; y++) {
73
45.9M
    for (size_t x = 0; x < num_2x2; x++) {
74
22.9M
      float c00 = block[y * kBlockDim + x];
75
22.9M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
22.9M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
22.9M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
22.9M
      float r00 = c00 + c01 + c10 + c11;
79
22.9M
      float r01 = c00 + c01 - c10 - c11;
80
22.9M
      float r10 = c00 - c01 + c10 - c11;
81
22.9M
      float r11 = c00 - c01 - c10 + c11;
82
22.9M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
22.9M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
22.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
22.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
22.9M
    }
87
22.9M
  }
88
68.9M
  for (size_t y = 0; y < S; y++) {
89
137M
    for (size_t x = 0; x < S; x++) {
90
91.9M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
91.9M
    }
92
45.9M
  }
93
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
22.9M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
22.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
22.9M
  static_assert(S % 2 == 0, "S should be even");
70
22.9M
  float temp[kDCTBlockSize];
71
22.9M
  constexpr size_t num_2x2 = S / 2;
72
68.9M
  for (size_t y = 0; y < num_2x2; y++) {
73
137M
    for (size_t x = 0; x < num_2x2; x++) {
74
91.9M
      float c00 = block[y * kBlockDim + x];
75
91.9M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
91.9M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
91.9M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
91.9M
      float r00 = c00 + c01 + c10 + c11;
79
91.9M
      float r01 = c00 + c01 - c10 - c11;
80
91.9M
      float r10 = c00 - c01 + c10 - c11;
81
91.9M
      float r11 = c00 - c01 - c10 + c11;
82
91.9M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
91.9M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
91.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
91.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
91.9M
    }
87
45.9M
  }
88
114M
  for (size_t y = 0; y < S; y++) {
89
459M
    for (size_t x = 0; x < S; x++) {
90
367M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
367M
    }
92
91.9M
  }
93
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
22.9M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
22.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
22.9M
  static_assert(S % 2 == 0, "S should be even");
70
22.9M
  float temp[kDCTBlockSize];
71
22.9M
  constexpr size_t num_2x2 = S / 2;
72
114M
  for (size_t y = 0; y < num_2x2; y++) {
73
459M
    for (size_t x = 0; x < num_2x2; x++) {
74
367M
      float c00 = block[y * kBlockDim + x];
75
367M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
367M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
367M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
367M
      float r00 = c00 + c01 + c10 + c11;
79
367M
      float r01 = c00 + c01 - c10 - c11;
80
367M
      float r10 = c00 - c01 + c10 - c11;
81
367M
      float r11 = c00 - c01 - c10 + c11;
82
367M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
367M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
367M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
367M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
367M
    }
87
91.9M
  }
88
206M
  for (size_t y = 0; y < S; y++) {
89
1.65G
    for (size_t x = 0; x < S; x++) {
90
1.47G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.47G
    }
92
183M
  }
93
22.9M
}
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
94
95
99.3M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
99.3M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
99.3M
      {
98
99.3M
          0.25,
99
99.3M
          0.25,
100
99.3M
          0.25,
101
99.3M
          0.25,
102
99.3M
          0.25,
103
99.3M
          0.25,
104
99.3M
          0.25,
105
99.3M
          0.25,
106
99.3M
          0.25,
107
99.3M
          0.25,
108
99.3M
          0.25,
109
99.3M
          0.25,
110
99.3M
          0.25,
111
99.3M
          0.25,
112
99.3M
          0.25,
113
99.3M
          0.25,
114
99.3M
      },
115
99.3M
      {
116
99.3M
          0.876902929799142f,
117
99.3M
          0.2206518106944235f,
118
99.3M
          -0.10140050393753763f,
119
99.3M
          -0.1014005039375375f,
120
99.3M
          0.2206518106944236f,
121
99.3M
          -0.10140050393753777f,
122
99.3M
          -0.10140050393753772f,
123
99.3M
          -0.10140050393753763f,
124
99.3M
          -0.10140050393753758f,
125
99.3M
          -0.10140050393753769f,
126
99.3M
          -0.1014005039375375f,
127
99.3M
          -0.10140050393753768f,
128
99.3M
          -0.10140050393753768f,
129
99.3M
          -0.10140050393753759f,
130
99.3M
          -0.10140050393753763f,
131
99.3M
          -0.10140050393753741f,
132
99.3M
      },
133
99.3M
      {
134
99.3M
          0.0,
135
99.3M
          0.0,
136
99.3M
          0.40670075830260755f,
137
99.3M
          0.44444816619734445f,
138
99.3M
          0.0,
139
99.3M
          0.0,
140
99.3M
          0.19574399372042936f,
141
99.3M
          0.2929100136981264f,
142
99.3M
          -0.40670075830260716f,
143
99.3M
          -0.19574399372042872f,
144
99.3M
          0.0,
145
99.3M
          0.11379074460448091f,
146
99.3M
          -0.44444816619734384f,
147
99.3M
          -0.29291001369812636f,
148
99.3M
          -0.1137907446044814f,
149
99.3M
          0.0,
150
99.3M
      },
151
99.3M
      {
152
99.3M
          0.0,
153
99.3M
          0.0,
154
99.3M
          -0.21255748058288748f,
155
99.3M
          0.3085497062849767f,
156
99.3M
          0.0,
157
99.3M
          0.4706702258572536f,
158
99.3M
          -0.1621205195722993f,
159
99.3M
          0.0,
160
99.3M
          -0.21255748058287047f,
161
99.3M
          -0.16212051957228327f,
162
99.3M
          -0.47067022585725277f,
163
99.3M
          -0.1464291867126764f,
164
99.3M
          0.3085497062849487f,
165
99.3M
          0.0,
166
99.3M
          -0.14642918671266536f,
167
99.3M
          0.4251149611657548f,
168
99.3M
      },
169
99.3M
      {
170
99.3M
          0.0,
171
99.3M
          -0.7071067811865474f,
172
99.3M
          0.0,
173
99.3M
          0.0,
174
99.3M
          0.7071067811865476f,
175
99.3M
          0.0,
176
99.3M
          0.0,
177
99.3M
          0.0,
178
99.3M
          0.0,
179
99.3M
          0.0,
180
99.3M
          0.0,
181
99.3M
          0.0,
182
99.3M
          0.0,
183
99.3M
          0.0,
184
99.3M
          0.0,
185
99.3M
          0.0,
186
99.3M
      },
187
99.3M
      {
188
99.3M
          -0.4105377591765233f,
189
99.3M
          0.6235485373547691f,
190
99.3M
          -0.06435071657946274f,
191
99.3M
          -0.06435071657946266f,
192
99.3M
          0.6235485373547694f,
193
99.3M
          -0.06435071657946284f,
194
99.3M
          -0.0643507165794628f,
195
99.3M
          -0.06435071657946274f,
196
99.3M
          -0.06435071657946272f,
197
99.3M
          -0.06435071657946279f,
198
99.3M
          -0.06435071657946266f,
199
99.3M
          -0.06435071657946277f,
200
99.3M
          -0.06435071657946277f,
201
99.3M
          -0.06435071657946273f,
202
99.3M
          -0.06435071657946274f,
203
99.3M
          -0.0643507165794626f,
204
99.3M
      },
205
99.3M
      {
206
99.3M
          0.0,
207
99.3M
          0.0,
208
99.3M
          -0.4517556589999482f,
209
99.3M
          0.15854503551840063f,
210
99.3M
          0.0,
211
99.3M
          -0.04038515160822202f,
212
99.3M
          0.0074182263792423875f,
213
99.3M
          0.39351034269210167f,
214
99.3M
          -0.45175565899994635f,
215
99.3M
          0.007418226379244351f,
216
99.3M
          0.1107416575309343f,
217
99.3M
          0.08298163094882051f,
218
99.3M
          0.15854503551839705f,
219
99.3M
          0.3935103426921022f,
220
99.3M
          0.0829816309488214f,
221
99.3M
          -0.45175565899994796f,
222
99.3M
      },
223
99.3M
      {
224
99.3M
          0.0,
225
99.3M
          0.0,
226
99.3M
          -0.304684750724869f,
227
99.3M
          0.5112616136591823f,
228
99.3M
          0.0,
229
99.3M
          0.0,
230
99.3M
          -0.290480129728998f,
231
99.3M
          -0.06578701549142804f,
232
99.3M
          0.304684750724884f,
233
99.3M
          0.2904801297290076f,
234
99.3M
          0.0,
235
99.3M
          -0.23889773523344604f,
236
99.3M
          -0.5112616136592012f,
237
99.3M
          0.06578701549142545f,
238
99.3M
          0.23889773523345467f,
239
99.3M
          0.0,
240
99.3M
      },
241
99.3M
      {
242
99.3M
          0.0,
243
99.3M
          0.0,
244
99.3M
          0.3017929516615495f,
245
99.3M
          0.25792362796341184f,
246
99.3M
          0.0,
247
99.3M
          0.16272340142866204f,
248
99.3M
          0.09520022653475037f,
249
99.3M
          0.0,
250
99.3M
          0.3017929516615503f,
251
99.3M
          0.09520022653475055f,
252
99.3M
          -0.16272340142866173f,
253
99.3M
          -0.35312385449816297f,
254
99.3M
          0.25792362796341295f,
255
99.3M
          0.0,
256
99.3M
          -0.3531238544981624f,
257
99.3M
          -0.6035859033230976f,
258
99.3M
      },
259
99.3M
      {
260
99.3M
          0.0,
261
99.3M
          0.0,
262
99.3M
          0.40824829046386274f,
263
99.3M
          0.0,
264
99.3M
          0.0,
265
99.3M
          0.0,
266
99.3M
          0.0,
267
99.3M
          -0.4082482904638628f,
268
99.3M
          -0.4082482904638635f,
269
99.3M
          0.0,
270
99.3M
          0.0,
271
99.3M
          -0.40824829046386296f,
272
99.3M
          0.0,
273
99.3M
          0.4082482904638634f,
274
99.3M
          0.408248290463863f,
275
99.3M
          0.0,
276
99.3M
      },
277
99.3M
      {
278
99.3M
          0.0,
279
99.3M
          0.0,
280
99.3M
          0.1747866975480809f,
281
99.3M
          0.0812611176717539f,
282
99.3M
          0.0,
283
99.3M
          0.0,
284
99.3M
          -0.3675398009862027f,
285
99.3M
          -0.307882213957909f,
286
99.3M
          -0.17478669754808135f,
287
99.3M
          0.3675398009862011f,
288
99.3M
          0.0,
289
99.3M
          0.4826689115059883f,
290
99.3M
          -0.08126111767175039f,
291
99.3M
          0.30788221395790305f,
292
99.3M
          -0.48266891150598584f,
293
99.3M
          0.0,
294
99.3M
      },
295
99.3M
      {
296
99.3M
          0.0,
297
99.3M
          0.0,
298
99.3M
          -0.21105601049335784f,
299
99.3M
          0.18567180916109802f,
300
99.3M
          0.0,
301
99.3M
          0.0,
302
99.3M
          0.49215859013738733f,
303
99.3M
          -0.38525013709251915f,
304
99.3M
          0.21105601049335806f,
305
99.3M
          -0.49215859013738905f,
306
99.3M
          0.0,
307
99.3M
          0.17419412659916217f,
308
99.3M
          -0.18567180916109904f,
309
99.3M
          0.3852501370925211f,
310
99.3M
          -0.1741941265991621f,
311
99.3M
          0.0,
312
99.3M
      },
313
99.3M
      {
314
99.3M
          0.0,
315
99.3M
          0.0,
316
99.3M
          -0.14266084808807264f,
317
99.3M
          -0.3416446842253372f,
318
99.3M
          0.0,
319
99.3M
          0.7367497537172237f,
320
99.3M
          0.24627107722075148f,
321
99.3M
          -0.08574019035519306f,
322
99.3M
          -0.14266084808807344f,
323
99.3M
          0.24627107722075137f,
324
99.3M
          0.14883399227113567f,
325
99.3M
          -0.04768680350229251f,
326
99.3M
          -0.3416446842253373f,
327
99.3M
          -0.08574019035519267f,
328
99.3M
          -0.047686803502292804f,
329
99.3M
          -0.14266084808807242f,
330
99.3M
      },
331
99.3M
      {
332
99.3M
          0.0,
333
99.3M
          0.0,
334
99.3M
          -0.13813540350758585f,
335
99.3M
          0.3302282550303788f,
336
99.3M
          0.0,
337
99.3M
          0.08755115000587084f,
338
99.3M
          -0.07946706605909573f,
339
99.3M
          -0.4613374887461511f,
340
99.3M
          -0.13813540350758294f,
341
99.3M
          -0.07946706605910261f,
342
99.3M
          0.49724647109535086f,
343
99.3M
          0.12538059448563663f,
344
99.3M
          0.3302282550303805f,
345
99.3M
          -0.4613374887461554f,
346
99.3M
          0.12538059448564315f,
347
99.3M
          -0.13813540350758452f,
348
99.3M
      },
349
99.3M
      {
350
99.3M
          0.0,
351
99.3M
          0.0,
352
99.3M
          -0.17437602599651067f,
353
99.3M
          0.0702790691196284f,
354
99.3M
          0.0,
355
99.3M
          -0.2921026642334881f,
356
99.3M
          0.3623817333531167f,
357
99.3M
          0.0,
358
99.3M
          -0.1743760259965108f,
359
99.3M
          0.36238173335311646f,
360
99.3M
          0.29210266423348785f,
361
99.3M
          -0.4326608024727445f,
362
99.3M
          0.07027906911962818f,
363
99.3M
          0.0,
364
99.3M
          -0.4326608024727457f,
365
99.3M
          0.34875205199302267f,
366
99.3M
      },
367
99.3M
      {
368
99.3M
          0.0,
369
99.3M
          0.0,
370
99.3M
          0.11354987314994337f,
371
99.3M
          -0.07417504595810355f,
372
99.3M
          0.0,
373
99.3M
          0.19402893032594343f,
374
99.3M
          -0.435190496523228f,
375
99.3M
          0.21918684838857466f,
376
99.3M
          0.11354987314994257f,
377
99.3M
          -0.4351904965232251f,
378
99.3M
          0.5550443808910661f,
379
99.3M
          -0.25468277124066463f,
380
99.3M
          -0.07417504595810233f,
381
99.3M
          0.2191868483885728f,
382
99.3M
          -0.25468277124066413f,
383
99.3M
          0.1135498731499429f,
384
99.3M
      },
385
99.3M
  };
386
387
99.3M
  const HWY_CAPPED(float, 16) d;
388
297M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
198M
    auto pixel = Zero(d);
390
3.37G
    for (size_t j = 0; j < 16; j++) {
391
3.17G
      auto cf = Set(d, coeffs[j]);
392
3.17G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
3.17G
      pixel = MulAdd(cf, basis, pixel);
394
3.17G
    }
395
198M
    Store(pixel, d, pixels + i);
396
198M
  }
397
99.3M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Line
Count
Source
95
7.36M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
7.36M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
7.36M
      {
98
7.36M
          0.25,
99
7.36M
          0.25,
100
7.36M
          0.25,
101
7.36M
          0.25,
102
7.36M
          0.25,
103
7.36M
          0.25,
104
7.36M
          0.25,
105
7.36M
          0.25,
106
7.36M
          0.25,
107
7.36M
          0.25,
108
7.36M
          0.25,
109
7.36M
          0.25,
110
7.36M
          0.25,
111
7.36M
          0.25,
112
7.36M
          0.25,
113
7.36M
          0.25,
114
7.36M
      },
115
7.36M
      {
116
7.36M
          0.876902929799142f,
117
7.36M
          0.2206518106944235f,
118
7.36M
          -0.10140050393753763f,
119
7.36M
          -0.1014005039375375f,
120
7.36M
          0.2206518106944236f,
121
7.36M
          -0.10140050393753777f,
122
7.36M
          -0.10140050393753772f,
123
7.36M
          -0.10140050393753763f,
124
7.36M
          -0.10140050393753758f,
125
7.36M
          -0.10140050393753769f,
126
7.36M
          -0.1014005039375375f,
127
7.36M
          -0.10140050393753768f,
128
7.36M
          -0.10140050393753768f,
129
7.36M
          -0.10140050393753759f,
130
7.36M
          -0.10140050393753763f,
131
7.36M
          -0.10140050393753741f,
132
7.36M
      },
133
7.36M
      {
134
7.36M
          0.0,
135
7.36M
          0.0,
136
7.36M
          0.40670075830260755f,
137
7.36M
          0.44444816619734445f,
138
7.36M
          0.0,
139
7.36M
          0.0,
140
7.36M
          0.19574399372042936f,
141
7.36M
          0.2929100136981264f,
142
7.36M
          -0.40670075830260716f,
143
7.36M
          -0.19574399372042872f,
144
7.36M
          0.0,
145
7.36M
          0.11379074460448091f,
146
7.36M
          -0.44444816619734384f,
147
7.36M
          -0.29291001369812636f,
148
7.36M
          -0.1137907446044814f,
149
7.36M
          0.0,
150
7.36M
      },
151
7.36M
      {
152
7.36M
          0.0,
153
7.36M
          0.0,
154
7.36M
          -0.21255748058288748f,
155
7.36M
          0.3085497062849767f,
156
7.36M
          0.0,
157
7.36M
          0.4706702258572536f,
158
7.36M
          -0.1621205195722993f,
159
7.36M
          0.0,
160
7.36M
          -0.21255748058287047f,
161
7.36M
          -0.16212051957228327f,
162
7.36M
          -0.47067022585725277f,
163
7.36M
          -0.1464291867126764f,
164
7.36M
          0.3085497062849487f,
165
7.36M
          0.0,
166
7.36M
          -0.14642918671266536f,
167
7.36M
          0.4251149611657548f,
168
7.36M
      },
169
7.36M
      {
170
7.36M
          0.0,
171
7.36M
          -0.7071067811865474f,
172
7.36M
          0.0,
173
7.36M
          0.0,
174
7.36M
          0.7071067811865476f,
175
7.36M
          0.0,
176
7.36M
          0.0,
177
7.36M
          0.0,
178
7.36M
          0.0,
179
7.36M
          0.0,
180
7.36M
          0.0,
181
7.36M
          0.0,
182
7.36M
          0.0,
183
7.36M
          0.0,
184
7.36M
          0.0,
185
7.36M
          0.0,
186
7.36M
      },
187
7.36M
      {
188
7.36M
          -0.4105377591765233f,
189
7.36M
          0.6235485373547691f,
190
7.36M
          -0.06435071657946274f,
191
7.36M
          -0.06435071657946266f,
192
7.36M
          0.6235485373547694f,
193
7.36M
          -0.06435071657946284f,
194
7.36M
          -0.0643507165794628f,
195
7.36M
          -0.06435071657946274f,
196
7.36M
          -0.06435071657946272f,
197
7.36M
          -0.06435071657946279f,
198
7.36M
          -0.06435071657946266f,
199
7.36M
          -0.06435071657946277f,
200
7.36M
          -0.06435071657946277f,
201
7.36M
          -0.06435071657946273f,
202
7.36M
          -0.06435071657946274f,
203
7.36M
          -0.0643507165794626f,
204
7.36M
      },
205
7.36M
      {
206
7.36M
          0.0,
207
7.36M
          0.0,
208
7.36M
          -0.4517556589999482f,
209
7.36M
          0.15854503551840063f,
210
7.36M
          0.0,
211
7.36M
          -0.04038515160822202f,
212
7.36M
          0.0074182263792423875f,
213
7.36M
          0.39351034269210167f,
214
7.36M
          -0.45175565899994635f,
215
7.36M
          0.007418226379244351f,
216
7.36M
          0.1107416575309343f,
217
7.36M
          0.08298163094882051f,
218
7.36M
          0.15854503551839705f,
219
7.36M
          0.3935103426921022f,
220
7.36M
          0.0829816309488214f,
221
7.36M
          -0.45175565899994796f,
222
7.36M
      },
223
7.36M
      {
224
7.36M
          0.0,
225
7.36M
          0.0,
226
7.36M
          -0.304684750724869f,
227
7.36M
          0.5112616136591823f,
228
7.36M
          0.0,
229
7.36M
          0.0,
230
7.36M
          -0.290480129728998f,
231
7.36M
          -0.06578701549142804f,
232
7.36M
          0.304684750724884f,
233
7.36M
          0.2904801297290076f,
234
7.36M
          0.0,
235
7.36M
          -0.23889773523344604f,
236
7.36M
          -0.5112616136592012f,
237
7.36M
          0.06578701549142545f,
238
7.36M
          0.23889773523345467f,
239
7.36M
          0.0,
240
7.36M
      },
241
7.36M
      {
242
7.36M
          0.0,
243
7.36M
          0.0,
244
7.36M
          0.3017929516615495f,
245
7.36M
          0.25792362796341184f,
246
7.36M
          0.0,
247
7.36M
          0.16272340142866204f,
248
7.36M
          0.09520022653475037f,
249
7.36M
          0.0,
250
7.36M
          0.3017929516615503f,
251
7.36M
          0.09520022653475055f,
252
7.36M
          -0.16272340142866173f,
253
7.36M
          -0.35312385449816297f,
254
7.36M
          0.25792362796341295f,
255
7.36M
          0.0,
256
7.36M
          -0.3531238544981624f,
257
7.36M
          -0.6035859033230976f,
258
7.36M
      },
259
7.36M
      {
260
7.36M
          0.0,
261
7.36M
          0.0,
262
7.36M
          0.40824829046386274f,
263
7.36M
          0.0,
264
7.36M
          0.0,
265
7.36M
          0.0,
266
7.36M
          0.0,
267
7.36M
          -0.4082482904638628f,
268
7.36M
          -0.4082482904638635f,
269
7.36M
          0.0,
270
7.36M
          0.0,
271
7.36M
          -0.40824829046386296f,
272
7.36M
          0.0,
273
7.36M
          0.4082482904638634f,
274
7.36M
          0.408248290463863f,
275
7.36M
          0.0,
276
7.36M
      },
277
7.36M
      {
278
7.36M
          0.0,
279
7.36M
          0.0,
280
7.36M
          0.1747866975480809f,
281
7.36M
          0.0812611176717539f,
282
7.36M
          0.0,
283
7.36M
          0.0,
284
7.36M
          -0.3675398009862027f,
285
7.36M
          -0.307882213957909f,
286
7.36M
          -0.17478669754808135f,
287
7.36M
          0.3675398009862011f,
288
7.36M
          0.0,
289
7.36M
          0.4826689115059883f,
290
7.36M
          -0.08126111767175039f,
291
7.36M
          0.30788221395790305f,
292
7.36M
          -0.48266891150598584f,
293
7.36M
          0.0,
294
7.36M
      },
295
7.36M
      {
296
7.36M
          0.0,
297
7.36M
          0.0,
298
7.36M
          -0.21105601049335784f,
299
7.36M
          0.18567180916109802f,
300
7.36M
          0.0,
301
7.36M
          0.0,
302
7.36M
          0.49215859013738733f,
303
7.36M
          -0.38525013709251915f,
304
7.36M
          0.21105601049335806f,
305
7.36M
          -0.49215859013738905f,
306
7.36M
          0.0,
307
7.36M
          0.17419412659916217f,
308
7.36M
          -0.18567180916109904f,
309
7.36M
          0.3852501370925211f,
310
7.36M
          -0.1741941265991621f,
311
7.36M
          0.0,
312
7.36M
      },
313
7.36M
      {
314
7.36M
          0.0,
315
7.36M
          0.0,
316
7.36M
          -0.14266084808807264f,
317
7.36M
          -0.3416446842253372f,
318
7.36M
          0.0,
319
7.36M
          0.7367497537172237f,
320
7.36M
          0.24627107722075148f,
321
7.36M
          -0.08574019035519306f,
322
7.36M
          -0.14266084808807344f,
323
7.36M
          0.24627107722075137f,
324
7.36M
          0.14883399227113567f,
325
7.36M
          -0.04768680350229251f,
326
7.36M
          -0.3416446842253373f,
327
7.36M
          -0.08574019035519267f,
328
7.36M
          -0.047686803502292804f,
329
7.36M
          -0.14266084808807242f,
330
7.36M
      },
331
7.36M
      {
332
7.36M
          0.0,
333
7.36M
          0.0,
334
7.36M
          -0.13813540350758585f,
335
7.36M
          0.3302282550303788f,
336
7.36M
          0.0,
337
7.36M
          0.08755115000587084f,
338
7.36M
          -0.07946706605909573f,
339
7.36M
          -0.4613374887461511f,
340
7.36M
          -0.13813540350758294f,
341
7.36M
          -0.07946706605910261f,
342
7.36M
          0.49724647109535086f,
343
7.36M
          0.12538059448563663f,
344
7.36M
          0.3302282550303805f,
345
7.36M
          -0.4613374887461554f,
346
7.36M
          0.12538059448564315f,
347
7.36M
          -0.13813540350758452f,
348
7.36M
      },
349
7.36M
      {
350
7.36M
          0.0,
351
7.36M
          0.0,
352
7.36M
          -0.17437602599651067f,
353
7.36M
          0.0702790691196284f,
354
7.36M
          0.0,
355
7.36M
          -0.2921026642334881f,
356
7.36M
          0.3623817333531167f,
357
7.36M
          0.0,
358
7.36M
          -0.1743760259965108f,
359
7.36M
          0.36238173335311646f,
360
7.36M
          0.29210266423348785f,
361
7.36M
          -0.4326608024727445f,
362
7.36M
          0.07027906911962818f,
363
7.36M
          0.0,
364
7.36M
          -0.4326608024727457f,
365
7.36M
          0.34875205199302267f,
366
7.36M
      },
367
7.36M
      {
368
7.36M
          0.0,
369
7.36M
          0.0,
370
7.36M
          0.11354987314994337f,
371
7.36M
          -0.07417504595810355f,
372
7.36M
          0.0,
373
7.36M
          0.19402893032594343f,
374
7.36M
          -0.435190496523228f,
375
7.36M
          0.21918684838857466f,
376
7.36M
          0.11354987314994257f,
377
7.36M
          -0.4351904965232251f,
378
7.36M
          0.5550443808910661f,
379
7.36M
          -0.25468277124066463f,
380
7.36M
          -0.07417504595810233f,
381
7.36M
          0.2191868483885728f,
382
7.36M
          -0.25468277124066413f,
383
7.36M
          0.1135498731499429f,
384
7.36M
      },
385
7.36M
  };
386
387
7.36M
  const HWY_CAPPED(float, 16) d;
388
22.1M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
14.7M
    auto pixel = Zero(d);
390
250M
    for (size_t j = 0; j < 16; j++) {
391
235M
      auto cf = Set(d, coeffs[j]);
392
235M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
235M
      pixel = MulAdd(cf, basis, pixel);
394
235M
    }
395
14.7M
    Store(pixel, d, pixels + i);
396
14.7M
  }
397
7.36M
}
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
91.9M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
91.9M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
91.9M
      {
98
91.9M
          0.25,
99
91.9M
          0.25,
100
91.9M
          0.25,
101
91.9M
          0.25,
102
91.9M
          0.25,
103
91.9M
          0.25,
104
91.9M
          0.25,
105
91.9M
          0.25,
106
91.9M
          0.25,
107
91.9M
          0.25,
108
91.9M
          0.25,
109
91.9M
          0.25,
110
91.9M
          0.25,
111
91.9M
          0.25,
112
91.9M
          0.25,
113
91.9M
          0.25,
114
91.9M
      },
115
91.9M
      {
116
91.9M
          0.876902929799142f,
117
91.9M
          0.2206518106944235f,
118
91.9M
          -0.10140050393753763f,
119
91.9M
          -0.1014005039375375f,
120
91.9M
          0.2206518106944236f,
121
91.9M
          -0.10140050393753777f,
122
91.9M
          -0.10140050393753772f,
123
91.9M
          -0.10140050393753763f,
124
91.9M
          -0.10140050393753758f,
125
91.9M
          -0.10140050393753769f,
126
91.9M
          -0.1014005039375375f,
127
91.9M
          -0.10140050393753768f,
128
91.9M
          -0.10140050393753768f,
129
91.9M
          -0.10140050393753759f,
130
91.9M
          -0.10140050393753763f,
131
91.9M
          -0.10140050393753741f,
132
91.9M
      },
133
91.9M
      {
134
91.9M
          0.0,
135
91.9M
          0.0,
136
91.9M
          0.40670075830260755f,
137
91.9M
          0.44444816619734445f,
138
91.9M
          0.0,
139
91.9M
          0.0,
140
91.9M
          0.19574399372042936f,
141
91.9M
          0.2929100136981264f,
142
91.9M
          -0.40670075830260716f,
143
91.9M
          -0.19574399372042872f,
144
91.9M
          0.0,
145
91.9M
          0.11379074460448091f,
146
91.9M
          -0.44444816619734384f,
147
91.9M
          -0.29291001369812636f,
148
91.9M
          -0.1137907446044814f,
149
91.9M
          0.0,
150
91.9M
      },
151
91.9M
      {
152
91.9M
          0.0,
153
91.9M
          0.0,
154
91.9M
          -0.21255748058288748f,
155
91.9M
          0.3085497062849767f,
156
91.9M
          0.0,
157
91.9M
          0.4706702258572536f,
158
91.9M
          -0.1621205195722993f,
159
91.9M
          0.0,
160
91.9M
          -0.21255748058287047f,
161
91.9M
          -0.16212051957228327f,
162
91.9M
          -0.47067022585725277f,
163
91.9M
          -0.1464291867126764f,
164
91.9M
          0.3085497062849487f,
165
91.9M
          0.0,
166
91.9M
          -0.14642918671266536f,
167
91.9M
          0.4251149611657548f,
168
91.9M
      },
169
91.9M
      {
170
91.9M
          0.0,
171
91.9M
          -0.7071067811865474f,
172
91.9M
          0.0,
173
91.9M
          0.0,
174
91.9M
          0.7071067811865476f,
175
91.9M
          0.0,
176
91.9M
          0.0,
177
91.9M
          0.0,
178
91.9M
          0.0,
179
91.9M
          0.0,
180
91.9M
          0.0,
181
91.9M
          0.0,
182
91.9M
          0.0,
183
91.9M
          0.0,
184
91.9M
          0.0,
185
91.9M
          0.0,
186
91.9M
      },
187
91.9M
      {
188
91.9M
          -0.4105377591765233f,
189
91.9M
          0.6235485373547691f,
190
91.9M
          -0.06435071657946274f,
191
91.9M
          -0.06435071657946266f,
192
91.9M
          0.6235485373547694f,
193
91.9M
          -0.06435071657946284f,
194
91.9M
          -0.0643507165794628f,
195
91.9M
          -0.06435071657946274f,
196
91.9M
          -0.06435071657946272f,
197
91.9M
          -0.06435071657946279f,
198
91.9M
          -0.06435071657946266f,
199
91.9M
          -0.06435071657946277f,
200
91.9M
          -0.06435071657946277f,
201
91.9M
          -0.06435071657946273f,
202
91.9M
          -0.06435071657946274f,
203
91.9M
          -0.0643507165794626f,
204
91.9M
      },
205
91.9M
      {
206
91.9M
          0.0,
207
91.9M
          0.0,
208
91.9M
          -0.4517556589999482f,
209
91.9M
          0.15854503551840063f,
210
91.9M
          0.0,
211
91.9M
          -0.04038515160822202f,
212
91.9M
          0.0074182263792423875f,
213
91.9M
          0.39351034269210167f,
214
91.9M
          -0.45175565899994635f,
215
91.9M
          0.007418226379244351f,
216
91.9M
          0.1107416575309343f,
217
91.9M
          0.08298163094882051f,
218
91.9M
          0.15854503551839705f,
219
91.9M
          0.3935103426921022f,
220
91.9M
          0.0829816309488214f,
221
91.9M
          -0.45175565899994796f,
222
91.9M
      },
223
91.9M
      {
224
91.9M
          0.0,
225
91.9M
          0.0,
226
91.9M
          -0.304684750724869f,
227
91.9M
          0.5112616136591823f,
228
91.9M
          0.0,
229
91.9M
          0.0,
230
91.9M
          -0.290480129728998f,
231
91.9M
          -0.06578701549142804f,
232
91.9M
          0.304684750724884f,
233
91.9M
          0.2904801297290076f,
234
91.9M
          0.0,
235
91.9M
          -0.23889773523344604f,
236
91.9M
          -0.5112616136592012f,
237
91.9M
          0.06578701549142545f,
238
91.9M
          0.23889773523345467f,
239
91.9M
          0.0,
240
91.9M
      },
241
91.9M
      {
242
91.9M
          0.0,
243
91.9M
          0.0,
244
91.9M
          0.3017929516615495f,
245
91.9M
          0.25792362796341184f,
246
91.9M
          0.0,
247
91.9M
          0.16272340142866204f,
248
91.9M
          0.09520022653475037f,
249
91.9M
          0.0,
250
91.9M
          0.3017929516615503f,
251
91.9M
          0.09520022653475055f,
252
91.9M
          -0.16272340142866173f,
253
91.9M
          -0.35312385449816297f,
254
91.9M
          0.25792362796341295f,
255
91.9M
          0.0,
256
91.9M
          -0.3531238544981624f,
257
91.9M
          -0.6035859033230976f,
258
91.9M
      },
259
91.9M
      {
260
91.9M
          0.0,
261
91.9M
          0.0,
262
91.9M
          0.40824829046386274f,
263
91.9M
          0.0,
264
91.9M
          0.0,
265
91.9M
          0.0,
266
91.9M
          0.0,
267
91.9M
          -0.4082482904638628f,
268
91.9M
          -0.4082482904638635f,
269
91.9M
          0.0,
270
91.9M
          0.0,
271
91.9M
          -0.40824829046386296f,
272
91.9M
          0.0,
273
91.9M
          0.4082482904638634f,
274
91.9M
          0.408248290463863f,
275
91.9M
          0.0,
276
91.9M
      },
277
91.9M
      {
278
91.9M
          0.0,
279
91.9M
          0.0,
280
91.9M
          0.1747866975480809f,
281
91.9M
          0.0812611176717539f,
282
91.9M
          0.0,
283
91.9M
          0.0,
284
91.9M
          -0.3675398009862027f,
285
91.9M
          -0.307882213957909f,
286
91.9M
          -0.17478669754808135f,
287
91.9M
          0.3675398009862011f,
288
91.9M
          0.0,
289
91.9M
          0.4826689115059883f,
290
91.9M
          -0.08126111767175039f,
291
91.9M
          0.30788221395790305f,
292
91.9M
          -0.48266891150598584f,
293
91.9M
          0.0,
294
91.9M
      },
295
91.9M
      {
296
91.9M
          0.0,
297
91.9M
          0.0,
298
91.9M
          -0.21105601049335784f,
299
91.9M
          0.18567180916109802f,
300
91.9M
          0.0,
301
91.9M
          0.0,
302
91.9M
          0.49215859013738733f,
303
91.9M
          -0.38525013709251915f,
304
91.9M
          0.21105601049335806f,
305
91.9M
          -0.49215859013738905f,
306
91.9M
          0.0,
307
91.9M
          0.17419412659916217f,
308
91.9M
          -0.18567180916109904f,
309
91.9M
          0.3852501370925211f,
310
91.9M
          -0.1741941265991621f,
311
91.9M
          0.0,
312
91.9M
      },
313
91.9M
      {
314
91.9M
          0.0,
315
91.9M
          0.0,
316
91.9M
          -0.14266084808807264f,
317
91.9M
          -0.3416446842253372f,
318
91.9M
          0.0,
319
91.9M
          0.7367497537172237f,
320
91.9M
          0.24627107722075148f,
321
91.9M
          -0.08574019035519306f,
322
91.9M
          -0.14266084808807344f,
323
91.9M
          0.24627107722075137f,
324
91.9M
          0.14883399227113567f,
325
91.9M
          -0.04768680350229251f,
326
91.9M
          -0.3416446842253373f,
327
91.9M
          -0.08574019035519267f,
328
91.9M
          -0.047686803502292804f,
329
91.9M
          -0.14266084808807242f,
330
91.9M
      },
331
91.9M
      {
332
91.9M
          0.0,
333
91.9M
          0.0,
334
91.9M
          -0.13813540350758585f,
335
91.9M
          0.3302282550303788f,
336
91.9M
          0.0,
337
91.9M
          0.08755115000587084f,
338
91.9M
          -0.07946706605909573f,
339
91.9M
          -0.4613374887461511f,
340
91.9M
          -0.13813540350758294f,
341
91.9M
          -0.07946706605910261f,
342
91.9M
          0.49724647109535086f,
343
91.9M
          0.12538059448563663f,
344
91.9M
          0.3302282550303805f,
345
91.9M
          -0.4613374887461554f,
346
91.9M
          0.12538059448564315f,
347
91.9M
          -0.13813540350758452f,
348
91.9M
      },
349
91.9M
      {
350
91.9M
          0.0,
351
91.9M
          0.0,
352
91.9M
          -0.17437602599651067f,
353
91.9M
          0.0702790691196284f,
354
91.9M
          0.0,
355
91.9M
          -0.2921026642334881f,
356
91.9M
          0.3623817333531167f,
357
91.9M
          0.0,
358
91.9M
          -0.1743760259965108f,
359
91.9M
          0.36238173335311646f,
360
91.9M
          0.29210266423348785f,
361
91.9M
          -0.4326608024727445f,
362
91.9M
          0.07027906911962818f,
363
91.9M
          0.0,
364
91.9M
          -0.4326608024727457f,
365
91.9M
          0.34875205199302267f,
366
91.9M
      },
367
91.9M
      {
368
91.9M
          0.0,
369
91.9M
          0.0,
370
91.9M
          0.11354987314994337f,
371
91.9M
          -0.07417504595810355f,
372
91.9M
          0.0,
373
91.9M
          0.19402893032594343f,
374
91.9M
          -0.435190496523228f,
375
91.9M
          0.21918684838857466f,
376
91.9M
          0.11354987314994257f,
377
91.9M
          -0.4351904965232251f,
378
91.9M
          0.5550443808910661f,
379
91.9M
          -0.25468277124066463f,
380
91.9M
          -0.07417504595810233f,
381
91.9M
          0.2191868483885728f,
382
91.9M
          -0.25468277124066413f,
383
91.9M
          0.1135498731499429f,
384
91.9M
      },
385
91.9M
  };
386
387
91.9M
  const HWY_CAPPED(float, 16) d;
388
275M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
183M
    auto pixel = Zero(d);
390
3.12G
    for (size_t j = 0; j < 16; j++) {
391
2.94G
      auto cf = Set(d, coeffs[j]);
392
2.94G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.94G
      pixel = MulAdd(cf, basis, pixel);
394
2.94G
    }
395
183M
    Store(pixel, d, pixels + i);
396
183M
  }
397
91.9M
}
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
398
399
template <size_t afv_kind>
400
void AFVTransformToPixels(const float* JXL_RESTRICT coefficients,
401
99.3M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
99.3M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
99.3M
  size_t afv_x = afv_kind & 1;
404
99.3M
  size_t afv_y = afv_kind / 2;
405
99.3M
  float dcs[3] = {};
406
99.3M
  float block00 = coefficients[0];
407
99.3M
  float block01 = coefficients[1];
408
99.3M
  float block10 = coefficients[8];
409
99.3M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
99.3M
  dcs[1] = (block00 + block10 - block01);
411
99.3M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
99.3M
  HWY_ALIGN float coeff[4 * 4];
414
99.3M
  coeff[0] = dcs[0];
415
496M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.98G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.58G
      if (ix == 0 && iy == 0) continue;
418
1.48G
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
1.48G
    }
420
397M
  }
421
99.3M
  HWY_ALIGN float block[4 * 8];
422
99.3M
  AFVIDCT4x4(coeff, block);
423
496M
  for (size_t iy = 0; iy < 4; iy++) {
424
1.98G
    for (size_t ix = 0; ix < 4; ix++) {
425
1.58G
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
1.58G
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
1.58G
    }
428
397M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
99.3M
  block[0] = dcs[1];
431
496M
  for (size_t iy = 0; iy < 4; iy++) {
432
1.98G
    for (size_t ix = 0; ix < 4; ix++) {
433
1.58G
      if (ix == 0 && iy == 0) continue;
434
1.48G
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
1.48G
    }
436
397M
  }
437
99.3M
  ComputeScaledIDCT<4, 4>()(
438
99.3M
      block,
439
99.3M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
99.3M
            pixels_stride),
441
99.3M
      scratch_space);
442
  // IDCT4x8.
443
99.3M
  block[0] = dcs[2];
444
496M
  for (size_t iy = 0; iy < 4; iy++) {
445
3.57G
    for (size_t ix = 0; ix < 8; ix++) {
446
3.17G
      if (ix == 0 && iy == 0) continue;
447
3.07G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
3.07G
    }
449
397M
  }
450
99.3M
  ComputeScaledIDCT<4, 8>()(
451
99.3M
      block,
452
99.3M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
99.3M
      scratch_space);
454
99.3M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.22M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.22M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.22M
  size_t afv_x = afv_kind & 1;
404
1.22M
  size_t afv_y = afv_kind / 2;
405
1.22M
  float dcs[3] = {};
406
1.22M
  float block00 = coefficients[0];
407
1.22M
  float block01 = coefficients[1];
408
1.22M
  float block10 = coefficients[8];
409
1.22M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.22M
  dcs[1] = (block00 + block10 - block01);
411
1.22M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.22M
  HWY_ALIGN float coeff[4 * 4];
414
1.22M
  coeff[0] = dcs[0];
415
6.12M
  for (size_t iy = 0; iy < 4; iy++) {
416
24.5M
    for (size_t ix = 0; ix < 4; ix++) {
417
19.6M
      if (ix == 0 && iy == 0) continue;
418
18.3M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
18.3M
    }
420
4.90M
  }
421
1.22M
  HWY_ALIGN float block[4 * 8];
422
1.22M
  AFVIDCT4x4(coeff, block);
423
6.12M
  for (size_t iy = 0; iy < 4; iy++) {
424
24.5M
    for (size_t ix = 0; ix < 4; ix++) {
425
19.6M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
19.6M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
19.6M
    }
428
4.90M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.22M
  block[0] = dcs[1];
431
6.12M
  for (size_t iy = 0; iy < 4; iy++) {
432
24.5M
    for (size_t ix = 0; ix < 4; ix++) {
433
19.6M
      if (ix == 0 && iy == 0) continue;
434
18.3M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
18.3M
    }
436
4.90M
  }
437
1.22M
  ComputeScaledIDCT<4, 4>()(
438
1.22M
      block,
439
1.22M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.22M
            pixels_stride),
441
1.22M
      scratch_space);
442
  // IDCT4x8.
443
1.22M
  block[0] = dcs[2];
444
6.12M
  for (size_t iy = 0; iy < 4; iy++) {
445
44.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
39.2M
      if (ix == 0 && iy == 0) continue;
447
38.0M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
38.0M
    }
449
4.90M
  }
450
1.22M
  ComputeScaledIDCT<4, 8>()(
451
1.22M
      block,
452
1.22M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.22M
      scratch_space);
454
1.22M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
3.94M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
3.94M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
3.94M
  size_t afv_x = afv_kind & 1;
404
3.94M
  size_t afv_y = afv_kind / 2;
405
3.94M
  float dcs[3] = {};
406
3.94M
  float block00 = coefficients[0];
407
3.94M
  float block01 = coefficients[1];
408
3.94M
  float block10 = coefficients[8];
409
3.94M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
3.94M
  dcs[1] = (block00 + block10 - block01);
411
3.94M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
3.94M
  HWY_ALIGN float coeff[4 * 4];
414
3.94M
  coeff[0] = dcs[0];
415
19.7M
  for (size_t iy = 0; iy < 4; iy++) {
416
78.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
63.1M
      if (ix == 0 && iy == 0) continue;
418
59.2M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
59.2M
    }
420
15.7M
  }
421
3.94M
  HWY_ALIGN float block[4 * 8];
422
3.94M
  AFVIDCT4x4(coeff, block);
423
19.7M
  for (size_t iy = 0; iy < 4; iy++) {
424
78.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
63.1M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
63.1M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
63.1M
    }
428
15.7M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
3.94M
  block[0] = dcs[1];
431
19.7M
  for (size_t iy = 0; iy < 4; iy++) {
432
78.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
63.1M
      if (ix == 0 && iy == 0) continue;
434
59.2M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
59.2M
    }
436
15.7M
  }
437
3.94M
  ComputeScaledIDCT<4, 4>()(
438
3.94M
      block,
439
3.94M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
3.94M
            pixels_stride),
441
3.94M
      scratch_space);
442
  // IDCT4x8.
443
3.94M
  block[0] = dcs[2];
444
19.7M
  for (size_t iy = 0; iy < 4; iy++) {
445
142M
    for (size_t ix = 0; ix < 8; ix++) {
446
126M
      if (ix == 0 && iy == 0) continue;
447
122M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
122M
    }
449
15.7M
  }
450
3.94M
  ComputeScaledIDCT<4, 8>()(
451
3.94M
      block,
452
3.94M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
3.94M
      scratch_space);
454
3.94M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
746k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
746k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
746k
  size_t afv_x = afv_kind & 1;
404
746k
  size_t afv_y = afv_kind / 2;
405
746k
  float dcs[3] = {};
406
746k
  float block00 = coefficients[0];
407
746k
  float block01 = coefficients[1];
408
746k
  float block10 = coefficients[8];
409
746k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
746k
  dcs[1] = (block00 + block10 - block01);
411
746k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
746k
  HWY_ALIGN float coeff[4 * 4];
414
746k
  coeff[0] = dcs[0];
415
3.73M
  for (size_t iy = 0; iy < 4; iy++) {
416
14.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
11.9M
      if (ix == 0 && iy == 0) continue;
418
11.1M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
11.1M
    }
420
2.98M
  }
421
746k
  HWY_ALIGN float block[4 * 8];
422
746k
  AFVIDCT4x4(coeff, block);
423
3.73M
  for (size_t iy = 0; iy < 4; iy++) {
424
14.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
11.9M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
11.9M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
11.9M
    }
428
2.98M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
746k
  block[0] = dcs[1];
431
3.73M
  for (size_t iy = 0; iy < 4; iy++) {
432
14.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
11.9M
      if (ix == 0 && iy == 0) continue;
434
11.1M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
11.1M
    }
436
2.98M
  }
437
746k
  ComputeScaledIDCT<4, 4>()(
438
746k
      block,
439
746k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
746k
            pixels_stride),
441
746k
      scratch_space);
442
  // IDCT4x8.
443
746k
  block[0] = dcs[2];
444
3.73M
  for (size_t iy = 0; iy < 4; iy++) {
445
26.8M
    for (size_t ix = 0; ix < 8; ix++) {
446
23.8M
      if (ix == 0 && iy == 0) continue;
447
23.1M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
23.1M
    }
449
2.98M
  }
450
746k
  ComputeScaledIDCT<4, 8>()(
451
746k
      block,
452
746k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
746k
      scratch_space);
454
746k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.44M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.44M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.44M
  size_t afv_x = afv_kind & 1;
404
1.44M
  size_t afv_y = afv_kind / 2;
405
1.44M
  float dcs[3] = {};
406
1.44M
  float block00 = coefficients[0];
407
1.44M
  float block01 = coefficients[1];
408
1.44M
  float block10 = coefficients[8];
409
1.44M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.44M
  dcs[1] = (block00 + block10 - block01);
411
1.44M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.44M
  HWY_ALIGN float coeff[4 * 4];
414
1.44M
  coeff[0] = dcs[0];
415
7.24M
  for (size_t iy = 0; iy < 4; iy++) {
416
28.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
23.1M
      if (ix == 0 && iy == 0) continue;
418
21.7M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
21.7M
    }
420
5.79M
  }
421
1.44M
  HWY_ALIGN float block[4 * 8];
422
1.44M
  AFVIDCT4x4(coeff, block);
423
7.24M
  for (size_t iy = 0; iy < 4; iy++) {
424
28.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
23.1M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
23.1M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
23.1M
    }
428
5.79M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.44M
  block[0] = dcs[1];
431
7.24M
  for (size_t iy = 0; iy < 4; iy++) {
432
28.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
23.1M
      if (ix == 0 && iy == 0) continue;
434
21.7M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
21.7M
    }
436
5.79M
  }
437
1.44M
  ComputeScaledIDCT<4, 4>()(
438
1.44M
      block,
439
1.44M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.44M
            pixels_stride),
441
1.44M
      scratch_space);
442
  // IDCT4x8.
443
1.44M
  block[0] = dcs[2];
444
7.24M
  for (size_t iy = 0; iy < 4; iy++) {
445
52.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
46.3M
      if (ix == 0 && iy == 0) continue;
447
44.8M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
44.8M
    }
449
5.79M
  }
450
1.44M
  ComputeScaledIDCT<4, 8>()(
451
1.44M
      block,
452
1.44M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.44M
      scratch_space);
454
1.44M
}
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Line
Count
Source
401
22.9M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
22.9M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
22.9M
  size_t afv_x = afv_kind & 1;
404
22.9M
  size_t afv_y = afv_kind / 2;
405
22.9M
  float dcs[3] = {};
406
22.9M
  float block00 = coefficients[0];
407
22.9M
  float block01 = coefficients[1];
408
22.9M
  float block10 = coefficients[8];
409
22.9M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
22.9M
  dcs[1] = (block00 + block10 - block01);
411
22.9M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
22.9M
  HWY_ALIGN float coeff[4 * 4];
414
22.9M
  coeff[0] = dcs[0];
415
114M
  for (size_t iy = 0; iy < 4; iy++) {
416
459M
    for (size_t ix = 0; ix < 4; ix++) {
417
367M
      if (ix == 0 && iy == 0) continue;
418
344M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
344M
    }
420
91.9M
  }
421
22.9M
  HWY_ALIGN float block[4 * 8];
422
22.9M
  AFVIDCT4x4(coeff, block);
423
114M
  for (size_t iy = 0; iy < 4; iy++) {
424
459M
    for (size_t ix = 0; ix < 4; ix++) {
425
367M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
367M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
367M
    }
428
91.9M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
22.9M
  block[0] = dcs[1];
431
114M
  for (size_t iy = 0; iy < 4; iy++) {
432
459M
    for (size_t ix = 0; ix < 4; ix++) {
433
367M
      if (ix == 0 && iy == 0) continue;
434
344M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
344M
    }
436
91.9M
  }
437
22.9M
  ComputeScaledIDCT<4, 4>()(
438
22.9M
      block,
439
22.9M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
22.9M
            pixels_stride),
441
22.9M
      scratch_space);
442
  // IDCT4x8.
443
22.9M
  block[0] = dcs[2];
444
114M
  for (size_t iy = 0; iy < 4; iy++) {
445
827M
    for (size_t ix = 0; ix < 8; ix++) {
446
735M
      if (ix == 0 && iy == 0) continue;
447
712M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
712M
    }
449
91.9M
  }
450
22.9M
  ComputeScaledIDCT<4, 8>()(
451
22.9M
      block,
452
22.9M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
22.9M
      scratch_space);
454
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
22.9M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
22.9M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
22.9M
  size_t afv_x = afv_kind & 1;
404
22.9M
  size_t afv_y = afv_kind / 2;
405
22.9M
  float dcs[3] = {};
406
22.9M
  float block00 = coefficients[0];
407
22.9M
  float block01 = coefficients[1];
408
22.9M
  float block10 = coefficients[8];
409
22.9M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
22.9M
  dcs[1] = (block00 + block10 - block01);
411
22.9M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
22.9M
  HWY_ALIGN float coeff[4 * 4];
414
22.9M
  coeff[0] = dcs[0];
415
114M
  for (size_t iy = 0; iy < 4; iy++) {
416
459M
    for (size_t ix = 0; ix < 4; ix++) {
417
367M
      if (ix == 0 && iy == 0) continue;
418
344M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
344M
    }
420
91.9M
  }
421
22.9M
  HWY_ALIGN float block[4 * 8];
422
22.9M
  AFVIDCT4x4(coeff, block);
423
114M
  for (size_t iy = 0; iy < 4; iy++) {
424
459M
    for (size_t ix = 0; ix < 4; ix++) {
425
367M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
367M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
367M
    }
428
91.9M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
22.9M
  block[0] = dcs[1];
431
114M
  for (size_t iy = 0; iy < 4; iy++) {
432
459M
    for (size_t ix = 0; ix < 4; ix++) {
433
367M
      if (ix == 0 && iy == 0) continue;
434
344M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
344M
    }
436
91.9M
  }
437
22.9M
  ComputeScaledIDCT<4, 4>()(
438
22.9M
      block,
439
22.9M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
22.9M
            pixels_stride),
441
22.9M
      scratch_space);
442
  // IDCT4x8.
443
22.9M
  block[0] = dcs[2];
444
114M
  for (size_t iy = 0; iy < 4; iy++) {
445
827M
    for (size_t ix = 0; ix < 8; ix++) {
446
735M
      if (ix == 0 && iy == 0) continue;
447
712M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
712M
    }
449
91.9M
  }
450
22.9M
  ComputeScaledIDCT<4, 8>()(
451
22.9M
      block,
452
22.9M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
22.9M
      scratch_space);
454
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
22.9M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
22.9M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
22.9M
  size_t afv_x = afv_kind & 1;
404
22.9M
  size_t afv_y = afv_kind / 2;
405
22.9M
  float dcs[3] = {};
406
22.9M
  float block00 = coefficients[0];
407
22.9M
  float block01 = coefficients[1];
408
22.9M
  float block10 = coefficients[8];
409
22.9M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
22.9M
  dcs[1] = (block00 + block10 - block01);
411
22.9M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
22.9M
  HWY_ALIGN float coeff[4 * 4];
414
22.9M
  coeff[0] = dcs[0];
415
114M
  for (size_t iy = 0; iy < 4; iy++) {
416
459M
    for (size_t ix = 0; ix < 4; ix++) {
417
367M
      if (ix == 0 && iy == 0) continue;
418
344M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
344M
    }
420
91.9M
  }
421
22.9M
  HWY_ALIGN float block[4 * 8];
422
22.9M
  AFVIDCT4x4(coeff, block);
423
114M
  for (size_t iy = 0; iy < 4; iy++) {
424
459M
    for (size_t ix = 0; ix < 4; ix++) {
425
367M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
367M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
367M
    }
428
91.9M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
22.9M
  block[0] = dcs[1];
431
114M
  for (size_t iy = 0; iy < 4; iy++) {
432
459M
    for (size_t ix = 0; ix < 4; ix++) {
433
367M
      if (ix == 0 && iy == 0) continue;
434
344M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
344M
    }
436
91.9M
  }
437
22.9M
  ComputeScaledIDCT<4, 4>()(
438
22.9M
      block,
439
22.9M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
22.9M
            pixels_stride),
441
22.9M
      scratch_space);
442
  // IDCT4x8.
443
22.9M
  block[0] = dcs[2];
444
114M
  for (size_t iy = 0; iy < 4; iy++) {
445
827M
    for (size_t ix = 0; ix < 8; ix++) {
446
735M
      if (ix == 0 && iy == 0) continue;
447
712M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
712M
    }
449
91.9M
  }
450
22.9M
  ComputeScaledIDCT<4, 8>()(
451
22.9M
      block,
452
22.9M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
22.9M
      scratch_space);
454
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
22.9M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
22.9M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
22.9M
  size_t afv_x = afv_kind & 1;
404
22.9M
  size_t afv_y = afv_kind / 2;
405
22.9M
  float dcs[3] = {};
406
22.9M
  float block00 = coefficients[0];
407
22.9M
  float block01 = coefficients[1];
408
22.9M
  float block10 = coefficients[8];
409
22.9M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
22.9M
  dcs[1] = (block00 + block10 - block01);
411
22.9M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
22.9M
  HWY_ALIGN float coeff[4 * 4];
414
22.9M
  coeff[0] = dcs[0];
415
114M
  for (size_t iy = 0; iy < 4; iy++) {
416
459M
    for (size_t ix = 0; ix < 4; ix++) {
417
367M
      if (ix == 0 && iy == 0) continue;
418
344M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
344M
    }
420
91.9M
  }
421
22.9M
  HWY_ALIGN float block[4 * 8];
422
22.9M
  AFVIDCT4x4(coeff, block);
423
114M
  for (size_t iy = 0; iy < 4; iy++) {
424
459M
    for (size_t ix = 0; ix < 4; ix++) {
425
367M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
367M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
367M
    }
428
91.9M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
22.9M
  block[0] = dcs[1];
431
114M
  for (size_t iy = 0; iy < 4; iy++) {
432
459M
    for (size_t ix = 0; ix < 4; ix++) {
433
367M
      if (ix == 0 && iy == 0) continue;
434
344M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
344M
    }
436
91.9M
  }
437
22.9M
  ComputeScaledIDCT<4, 4>()(
438
22.9M
      block,
439
22.9M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
22.9M
            pixels_stride),
441
22.9M
      scratch_space);
442
  // IDCT4x8.
443
22.9M
  block[0] = dcs[2];
444
114M
  for (size_t iy = 0; iy < 4; iy++) {
445
827M
    for (size_t ix = 0; ix < 8; ix++) {
446
735M
      if (ix == 0 && iy == 0) continue;
447
712M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
712M
    }
449
91.9M
  }
450
22.9M
  ComputeScaledIDCT<4, 8>()(
451
22.9M
      block,
452
22.9M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
22.9M
      scratch_space);
454
22.9M
}
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
324M
                                        float* scratch_space) {
461
324M
  using Type = AcStrategyType;
462
324M
  switch (strategy) {
463
26.6M
    case Type::IDENTITY: {
464
26.6M
      float dcs[4] = {};
465
26.6M
      float block00 = coefficients[0];
466
26.6M
      float block01 = coefficients[1];
467
26.6M
      float block10 = coefficients[8];
468
26.6M
      float block11 = coefficients[9];
469
26.6M
      dcs[0] = block00 + block01 + block10 + block11;
470
26.6M
      dcs[1] = block00 + block01 - block10 - block11;
471
26.6M
      dcs[2] = block00 - block01 + block10 - block11;
472
26.6M
      dcs[3] = block00 - block01 - block10 + block11;
473
79.8M
      for (size_t y = 0; y < 2; y++) {
474
159M
        for (size_t x = 0; x < 2; x++) {
475
106M
          float block_dc = dcs[y * 2 + x];
476
106M
          float residual_sum = 0;
477
532M
          for (size_t iy = 0; iy < 4; iy++) {
478
2.12G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.70G
              if (ix == 0 && iy == 0) continue;
480
1.59G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.59G
            }
482
425M
          }
483
106M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
106M
              block_dc - residual_sum * (1.0f / 16);
485
532M
          for (size_t iy = 0; iy < 4; iy++) {
486
2.12G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.70G
              if (ix == 1 && iy == 1) continue;
488
1.59G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.59G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.59G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.59G
            }
492
425M
          }
493
106M
          pixels[y * 4 * pixels_stride + x * 4] =
494
106M
              coefficients[(y + 2) * 8 + x + 2] +
495
106M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
106M
        }
497
53.2M
      }
498
26.6M
      break;
499
0
    }
500
24.6M
    case Type::DCT8X4: {
501
24.6M
      float dcs[2] = {};
502
24.6M
      float block0 = coefficients[0];
503
24.6M
      float block1 = coefficients[8];
504
24.6M
      dcs[0] = block0 + block1;
505
24.6M
      dcs[1] = block0 - block1;
506
73.9M
      for (size_t x = 0; x < 2; x++) {
507
49.2M
        HWY_ALIGN float block[4 * 8];
508
49.2M
        block[0] = dcs[x];
509
246M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.77G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.57G
            if (ix == 0 && iy == 0) continue;
512
1.52G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.52G
          }
514
197M
        }
515
49.2M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
49.2M
                                  scratch_space);
517
49.2M
      }
518
24.6M
      break;
519
0
    }
520
24.3M
    case Type::DCT4X8: {
521
24.3M
      float dcs[2] = {};
522
24.3M
      float block0 = coefficients[0];
523
24.3M
      float block1 = coefficients[8];
524
24.3M
      dcs[0] = block0 + block1;
525
24.3M
      dcs[1] = block0 - block1;
526
72.9M
      for (size_t y = 0; y < 2; y++) {
527
48.6M
        HWY_ALIGN float block[4 * 8];
528
48.6M
        block[0] = dcs[y];
529
243M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.75G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.55G
            if (ix == 0 && iy == 0) continue;
532
1.50G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.50G
          }
534
194M
        }
535
48.6M
        ComputeScaledIDCT<4, 8>()(
536
48.6M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
48.6M
            scratch_space);
538
48.6M
      }
539
24.3M
      break;
540
0
    }
541
23.0M
    case Type::DCT4X4: {
542
23.0M
      float dcs[4] = {};
543
23.0M
      float block00 = coefficients[0];
544
23.0M
      float block01 = coefficients[1];
545
23.0M
      float block10 = coefficients[8];
546
23.0M
      float block11 = coefficients[9];
547
23.0M
      dcs[0] = block00 + block01 + block10 + block11;
548
23.0M
      dcs[1] = block00 + block01 - block10 - block11;
549
23.0M
      dcs[2] = block00 - block01 + block10 - block11;
550
23.0M
      dcs[3] = block00 - block01 - block10 + block11;
551
69.1M
      for (size_t y = 0; y < 2; y++) {
552
138M
        for (size_t x = 0; x < 2; x++) {
553
92.1M
          HWY_ALIGN float block[4 * 4];
554
92.1M
          block[0] = dcs[y * 2 + x];
555
460M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.84G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.47G
              if (ix == 0 && iy == 0) continue;
558
1.38G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.38G
            }
560
368M
          }
561
92.1M
          ComputeScaledIDCT<4, 4>()(
562
92.1M
              block,
563
92.1M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
92.1M
              scratch_space);
565
92.1M
        }
566
46.0M
      }
567
23.0M
      break;
568
0
    }
569
26.7M
    case Type::DCT2X2: {
570
26.7M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
26.7M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
26.7M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
26.7M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
26.7M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
241M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.92G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.71G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.71G
        }
579
214M
      }
580
26.7M
      break;
581
0
    }
582
9.94M
    case Type::DCT16X16: {
583
9.94M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
9.94M
                                  scratch_space);
585
9.94M
      break;
586
0
    }
587
19.4M
    case Type::DCT16X8: {
588
19.4M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
19.4M
                                 scratch_space);
590
19.4M
      break;
591
0
    }
592
20.3M
    case Type::DCT8X16: {
593
20.3M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
20.3M
                                 scratch_space);
595
20.3M
      break;
596
0
    }
597
4.83k
    case Type::DCT32X8: {
598
4.83k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
4.83k
                                 scratch_space);
600
4.83k
      break;
601
0
    }
602
6.45k
    case Type::DCT8X32: {
603
6.45k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
6.45k
                                 scratch_space);
605
6.45k
      break;
606
0
    }
607
3.85M
    case Type::DCT32X16: {
608
3.85M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.85M
                                  scratch_space);
610
3.85M
      break;
611
0
    }
612
4.10M
    case Type::DCT16X32: {
613
4.10M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
4.10M
                                  scratch_space);
615
4.10M
      break;
616
0
    }
617
2.81M
    case Type::DCT32X32: {
618
2.81M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
2.81M
                                  scratch_space);
620
2.81M
      break;
621
0
    }
622
36.2M
    case Type::DCT: {
623
36.2M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
36.2M
                                scratch_space);
625
36.2M
      break;
626
0
    }
627
24.2M
    case Type::AFV0: {
628
24.2M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
24.2M
      break;
630
0
    }
631
26.9M
    case Type::AFV1: {
632
26.9M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
26.9M
      break;
634
0
    }
635
23.7M
    case Type::AFV2: {
636
23.7M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
23.7M
      break;
638
0
    }
639
24.4M
    case Type::AFV3: {
640
24.4M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
24.4M
      break;
642
0
    }
643
1.19M
    case Type::DCT64X32: {
644
1.19M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.19M
                                  scratch_space);
646
1.19M
      break;
647
0
    }
648
796k
    case Type::DCT32X64: {
649
796k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
796k
                                  scratch_space);
651
796k
      break;
652
0
    }
653
542k
    case Type::DCT64X64: {
654
542k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
542k
                                  scratch_space);
656
542k
      break;
657
0
    }
658
84
    case Type::DCT128X64: {
659
84
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
84
                                   scratch_space);
661
84
      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
51
    case Type::DCT256X256: {
684
51
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
51
                                    scratch_space);
686
51
      break;
687
0
    }
688
324M
  }
689
324M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Line
Count
Source
460
36.3M
                                        float* scratch_space) {
461
36.3M
  using Type = AcStrategyType;
462
36.3M
  switch (strategy) {
463
3.61M
    case Type::IDENTITY: {
464
3.61M
      float dcs[4] = {};
465
3.61M
      float block00 = coefficients[0];
466
3.61M
      float block01 = coefficients[1];
467
3.61M
      float block10 = coefficients[8];
468
3.61M
      float block11 = coefficients[9];
469
3.61M
      dcs[0] = block00 + block01 + block10 + block11;
470
3.61M
      dcs[1] = block00 + block01 - block10 - block11;
471
3.61M
      dcs[2] = block00 - block01 + block10 - block11;
472
3.61M
      dcs[3] = block00 - block01 - block10 + block11;
473
10.8M
      for (size_t y = 0; y < 2; y++) {
474
21.7M
        for (size_t x = 0; x < 2; x++) {
475
14.4M
          float block_dc = dcs[y * 2 + x];
476
14.4M
          float residual_sum = 0;
477
72.3M
          for (size_t iy = 0; iy < 4; iy++) {
478
289M
            for (size_t ix = 0; ix < 4; ix++) {
479
231M
              if (ix == 0 && iy == 0) continue;
480
217M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
217M
            }
482
57.8M
          }
483
14.4M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
14.4M
              block_dc - residual_sum * (1.0f / 16);
485
72.3M
          for (size_t iy = 0; iy < 4; iy++) {
486
289M
            for (size_t ix = 0; ix < 4; ix++) {
487
231M
              if (ix == 1 && iy == 1) continue;
488
217M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
217M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
217M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
217M
            }
492
57.8M
          }
493
14.4M
          pixels[y * 4 * pixels_stride + x * 4] =
494
14.4M
              coefficients[(y + 2) * 8 + x + 2] +
495
14.4M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
14.4M
        }
497
7.23M
      }
498
3.61M
      break;
499
0
    }
500
1.64M
    case Type::DCT8X4: {
501
1.64M
      float dcs[2] = {};
502
1.64M
      float block0 = coefficients[0];
503
1.64M
      float block1 = coefficients[8];
504
1.64M
      dcs[0] = block0 + block1;
505
1.64M
      dcs[1] = block0 - block1;
506
4.94M
      for (size_t x = 0; x < 2; x++) {
507
3.29M
        HWY_ALIGN float block[4 * 8];
508
3.29M
        block[0] = dcs[x];
509
16.4M
        for (size_t iy = 0; iy < 4; iy++) {
510
118M
          for (size_t ix = 0; ix < 8; ix++) {
511
105M
            if (ix == 0 && iy == 0) continue;
512
102M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
102M
          }
514
13.1M
        }
515
3.29M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
3.29M
                                  scratch_space);
517
3.29M
      }
518
1.64M
      break;
519
0
    }
520
1.33M
    case Type::DCT4X8: {
521
1.33M
      float dcs[2] = {};
522
1.33M
      float block0 = coefficients[0];
523
1.33M
      float block1 = coefficients[8];
524
1.33M
      dcs[0] = block0 + block1;
525
1.33M
      dcs[1] = block0 - block1;
526
4.01M
      for (size_t y = 0; y < 2; y++) {
527
2.67M
        HWY_ALIGN float block[4 * 8];
528
2.67M
        block[0] = dcs[y];
529
13.3M
        for (size_t iy = 0; iy < 4; iy++) {
530
96.3M
          for (size_t ix = 0; ix < 8; ix++) {
531
85.6M
            if (ix == 0 && iy == 0) continue;
532
82.9M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
82.9M
          }
534
10.7M
        }
535
2.67M
        ComputeScaledIDCT<4, 8>()(
536
2.67M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
2.67M
            scratch_space);
538
2.67M
      }
539
1.33M
      break;
540
0
    }
541
51.3k
    case Type::DCT4X4: {
542
51.3k
      float dcs[4] = {};
543
51.3k
      float block00 = coefficients[0];
544
51.3k
      float block01 = coefficients[1];
545
51.3k
      float block10 = coefficients[8];
546
51.3k
      float block11 = coefficients[9];
547
51.3k
      dcs[0] = block00 + block01 + block10 + block11;
548
51.3k
      dcs[1] = block00 + block01 - block10 - block11;
549
51.3k
      dcs[2] = block00 - block01 + block10 - block11;
550
51.3k
      dcs[3] = block00 - block01 - block10 + block11;
551
153k
      for (size_t y = 0; y < 2; y++) {
552
307k
        for (size_t x = 0; x < 2; x++) {
553
205k
          HWY_ALIGN float block[4 * 4];
554
205k
          block[0] = dcs[y * 2 + x];
555
1.02M
          for (size_t iy = 0; iy < 4; iy++) {
556
4.10M
            for (size_t ix = 0; ix < 4; ix++) {
557
3.28M
              if (ix == 0 && iy == 0) continue;
558
3.07M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
3.07M
            }
560
821k
          }
561
205k
          ComputeScaledIDCT<4, 4>()(
562
205k
              block,
563
205k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
205k
              scratch_space);
565
205k
        }
566
102k
      }
567
51.3k
      break;
568
0
    }
569
3.80M
    case Type::DCT2X2: {
570
3.80M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
3.80M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
3.80M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
3.80M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
3.80M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
34.2M
      for (size_t y = 0; y < kBlockDim; y++) {
576
274M
        for (size_t x = 0; x < kBlockDim; x++) {
577
243M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
243M
        }
579
30.4M
      }
580
3.80M
      break;
581
0
    }
582
548k
    case Type::DCT16X16: {
583
548k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
548k
                                  scratch_space);
585
548k
      break;
586
0
    }
587
977k
    case Type::DCT16X8: {
588
977k
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
977k
                                 scratch_space);
590
977k
      break;
591
0
    }
592
1.75M
    case Type::DCT8X16: {
593
1.75M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
1.75M
                                 scratch_space);
595
1.75M
      break;
596
0
    }
597
4.83k
    case Type::DCT32X8: {
598
4.83k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
4.83k
                                 scratch_space);
600
4.83k
      break;
601
0
    }
602
6.45k
    case Type::DCT8X32: {
603
6.45k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
6.45k
                                 scratch_space);
605
6.45k
      break;
606
0
    }
607
276k
    case Type::DCT32X16: {
608
276k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
276k
                                  scratch_space);
610
276k
      break;
611
0
    }
612
462k
    case Type::DCT16X32: {
613
462k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
462k
                                  scratch_space);
615
462k
      break;
616
0
    }
617
982k
    case Type::DCT32X32: {
618
982k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
982k
                                  scratch_space);
620
982k
      break;
621
0
    }
622
13.2M
    case Type::DCT: {
623
13.2M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
13.2M
                                scratch_space);
625
13.2M
      break;
626
0
    }
627
1.22M
    case Type::AFV0: {
628
1.22M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
1.22M
      break;
630
0
    }
631
3.94M
    case Type::AFV1: {
632
3.94M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
3.94M
      break;
634
0
    }
635
746k
    case Type::AFV2: {
636
746k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
746k
      break;
638
0
    }
639
1.44M
    case Type::AFV3: {
640
1.44M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
1.44M
      break;
642
0
    }
643
28.5k
    case Type::DCT64X32: {
644
28.5k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
28.5k
                                  scratch_space);
646
28.5k
      break;
647
0
    }
648
33.5k
    case Type::DCT32X64: {
649
33.5k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
33.5k
                                  scratch_space);
651
33.5k
      break;
652
0
    }
653
225k
    case Type::DCT64X64: {
654
225k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
225k
                                  scratch_space);
656
225k
      break;
657
0
    }
658
84
    case Type::DCT128X64: {
659
84
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
84
                                   scratch_space);
661
84
      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
51
    case Type::DCT256X256: {
684
51
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
51
                                    scratch_space);
686
51
      break;
687
0
    }
688
36.3M
  }
689
36.3M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Line
Count
Source
460
287M
                                        float* scratch_space) {
461
287M
  using Type = AcStrategyType;
462
287M
  switch (strategy) {
463
22.9M
    case Type::IDENTITY: {
464
22.9M
      float dcs[4] = {};
465
22.9M
      float block00 = coefficients[0];
466
22.9M
      float block01 = coefficients[1];
467
22.9M
      float block10 = coefficients[8];
468
22.9M
      float block11 = coefficients[9];
469
22.9M
      dcs[0] = block00 + block01 + block10 + block11;
470
22.9M
      dcs[1] = block00 + block01 - block10 - block11;
471
22.9M
      dcs[2] = block00 - block01 + block10 - block11;
472
22.9M
      dcs[3] = block00 - block01 - block10 + block11;
473
68.9M
      for (size_t y = 0; y < 2; y++) {
474
137M
        for (size_t x = 0; x < 2; x++) {
475
91.9M
          float block_dc = dcs[y * 2 + x];
476
91.9M
          float residual_sum = 0;
477
459M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.83G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.47G
              if (ix == 0 && iy == 0) continue;
480
1.37G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.37G
            }
482
367M
          }
483
91.9M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
91.9M
              block_dc - residual_sum * (1.0f / 16);
485
459M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.83G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.47G
              if (ix == 1 && iy == 1) continue;
488
1.37G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.37G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.37G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.37G
            }
492
367M
          }
493
91.9M
          pixels[y * 4 * pixels_stride + x * 4] =
494
91.9M
              coefficients[(y + 2) * 8 + x + 2] +
495
91.9M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
91.9M
        }
497
45.9M
      }
498
22.9M
      break;
499
0
    }
500
22.9M
    case Type::DCT8X4: {
501
22.9M
      float dcs[2] = {};
502
22.9M
      float block0 = coefficients[0];
503
22.9M
      float block1 = coefficients[8];
504
22.9M
      dcs[0] = block0 + block1;
505
22.9M
      dcs[1] = block0 - block1;
506
68.9M
      for (size_t x = 0; x < 2; x++) {
507
45.9M
        HWY_ALIGN float block[4 * 8];
508
45.9M
        block[0] = dcs[x];
509
229M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.65G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.47G
            if (ix == 0 && iy == 0) continue;
512
1.42G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.42G
          }
514
183M
        }
515
45.9M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
45.9M
                                  scratch_space);
517
45.9M
      }
518
22.9M
      break;
519
0
    }
520
22.9M
    case Type::DCT4X8: {
521
22.9M
      float dcs[2] = {};
522
22.9M
      float block0 = coefficients[0];
523
22.9M
      float block1 = coefficients[8];
524
22.9M
      dcs[0] = block0 + block1;
525
22.9M
      dcs[1] = block0 - block1;
526
68.9M
      for (size_t y = 0; y < 2; y++) {
527
45.9M
        HWY_ALIGN float block[4 * 8];
528
45.9M
        block[0] = dcs[y];
529
229M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.65G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.47G
            if (ix == 0 && iy == 0) continue;
532
1.42G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.42G
          }
534
183M
        }
535
45.9M
        ComputeScaledIDCT<4, 8>()(
536
45.9M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
45.9M
            scratch_space);
538
45.9M
      }
539
22.9M
      break;
540
0
    }
541
22.9M
    case Type::DCT4X4: {
542
22.9M
      float dcs[4] = {};
543
22.9M
      float block00 = coefficients[0];
544
22.9M
      float block01 = coefficients[1];
545
22.9M
      float block10 = coefficients[8];
546
22.9M
      float block11 = coefficients[9];
547
22.9M
      dcs[0] = block00 + block01 + block10 + block11;
548
22.9M
      dcs[1] = block00 + block01 - block10 - block11;
549
22.9M
      dcs[2] = block00 - block01 + block10 - block11;
550
22.9M
      dcs[3] = block00 - block01 - block10 + block11;
551
68.9M
      for (size_t y = 0; y < 2; y++) {
552
137M
        for (size_t x = 0; x < 2; x++) {
553
91.9M
          HWY_ALIGN float block[4 * 4];
554
91.9M
          block[0] = dcs[y * 2 + x];
555
459M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.83G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.47G
              if (ix == 0 && iy == 0) continue;
558
1.37G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.37G
            }
560
367M
          }
561
91.9M
          ComputeScaledIDCT<4, 4>()(
562
91.9M
              block,
563
91.9M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
91.9M
              scratch_space);
565
91.9M
        }
566
45.9M
      }
567
22.9M
      break;
568
0
    }
569
22.9M
    case Type::DCT2X2: {
570
22.9M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
22.9M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
22.9M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
22.9M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
22.9M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
206M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.65G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.47G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.47G
        }
579
183M
      }
580
22.9M
      break;
581
0
    }
582
9.39M
    case Type::DCT16X16: {
583
9.39M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
9.39M
                                  scratch_space);
585
9.39M
      break;
586
0
    }
587
18.4M
    case Type::DCT16X8: {
588
18.4M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
18.4M
                                 scratch_space);
590
18.4M
      break;
591
0
    }
592
18.5M
    case Type::DCT8X16: {
593
18.5M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
18.5M
                                 scratch_space);
595
18.5M
      break;
596
0
    }
597
0
    case Type::DCT32X8: {
598
0
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
0
                                 scratch_space);
600
0
      break;
601
0
    }
602
0
    case Type::DCT8X32: {
603
0
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
0
                                 scratch_space);
605
0
      break;
606
0
    }
607
3.58M
    case Type::DCT32X16: {
608
3.58M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.58M
                                  scratch_space);
610
3.58M
      break;
611
0
    }
612
3.64M
    case Type::DCT16X32: {
613
3.64M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.64M
                                  scratch_space);
615
3.64M
      break;
616
0
    }
617
1.83M
    case Type::DCT32X32: {
618
1.83M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.83M
                                  scratch_space);
620
1.83M
      break;
621
0
    }
622
22.9M
    case Type::DCT: {
623
22.9M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
22.9M
                                scratch_space);
625
22.9M
      break;
626
0
    }
627
22.9M
    case Type::AFV0: {
628
22.9M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
22.9M
      break;
630
0
    }
631
22.9M
    case Type::AFV1: {
632
22.9M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
22.9M
      break;
634
0
    }
635
22.9M
    case Type::AFV2: {
636
22.9M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
22.9M
      break;
638
0
    }
639
22.9M
    case Type::AFV3: {
640
22.9M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
22.9M
      break;
642
0
    }
643
1.16M
    case Type::DCT64X32: {
644
1.16M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.16M
                                  scratch_space);
646
1.16M
      break;
647
0
    }
648
762k
    case Type::DCT32X64: {
649
762k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
762k
                                  scratch_space);
651
762k
      break;
652
0
    }
653
317k
    case Type::DCT64X64: {
654
317k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
317k
                                  scratch_space);
656
317k
      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
287M
  }
689
287M
}
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
690
691
HWY_MAYBE_UNUSED void LowestFrequenciesFromDC(const AcStrategyType strategy,
692
                                              const float* dc, size_t dc_stride,
693
                                              float* llf,
694
36.3M
                                              float* JXL_RESTRICT scratch) {
695
36.3M
  using Type = AcStrategyType;
696
36.3M
  HWY_ALIGN float warm_block[4 * 4];
697
36.3M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
36.3M
  switch (strategy) {
699
977k
    case Type::DCT16X8: {
700
977k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
977k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
977k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
977k
      break;
704
0
    }
705
1.75M
    case Type::DCT8X16: {
706
1.75M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.75M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.75M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.75M
      break;
710
0
    }
711
548k
    case Type::DCT16X16: {
712
548k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
548k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
548k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
548k
      break;
716
0
    }
717
4.83k
    case Type::DCT32X8: {
718
4.83k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
4.83k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
4.83k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
4.83k
      break;
722
0
    }
723
6.45k
    case Type::DCT8X32: {
724
6.45k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
6.45k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
6.45k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
6.45k
      break;
728
0
    }
729
276k
    case Type::DCT32X16: {
730
276k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
276k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
276k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
276k
      break;
734
0
    }
735
462k
    case Type::DCT16X32: {
736
462k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
462k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
462k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
462k
      break;
740
0
    }
741
982k
    case Type::DCT32X32: {
742
982k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
982k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
982k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
982k
      break;
746
0
    }
747
28.5k
    case Type::DCT64X32: {
748
28.5k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
28.5k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
28.5k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
28.5k
      break;
752
0
    }
753
33.5k
    case Type::DCT32X64: {
754
33.5k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
33.5k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
33.5k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
33.5k
      break;
758
0
    }
759
225k
    case Type::DCT64X64: {
760
225k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
225k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
225k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
225k
      break;
764
0
    }
765
84
    case Type::DCT128X64: {
766
84
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
84
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
84
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
84
      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
51
    case Type::DCT256X256: {
799
51
      ReinterpretingDCT<
800
51
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
51
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
51
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
51
      break;
804
0
    }
805
13.2M
    case Type::DCT:
806
17.0M
    case Type::DCT2X2:
807
17.1M
    case Type::DCT4X4:
808
18.4M
    case Type::DCT4X8:
809
20.1M
    case Type::DCT8X4:
810
21.3M
    case Type::AFV0:
811
25.2M
    case Type::AFV1:
812
26.0M
    case Type::AFV2:
813
27.4M
    case Type::AFV3:
814
31.0M
    case Type::IDENTITY:
815
31.0M
      llf[0] = dc[0];
816
31.0M
      break;
817
36.3M
  };
818
36.3M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Line
Count
Source
694
36.3M
                                              float* JXL_RESTRICT scratch) {
695
36.3M
  using Type = AcStrategyType;
696
36.3M
  HWY_ALIGN float warm_block[4 * 4];
697
36.3M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
36.3M
  switch (strategy) {
699
977k
    case Type::DCT16X8: {
700
977k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
977k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
977k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
977k
      break;
704
0
    }
705
1.75M
    case Type::DCT8X16: {
706
1.75M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.75M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.75M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.75M
      break;
710
0
    }
711
548k
    case Type::DCT16X16: {
712
548k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
548k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
548k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
548k
      break;
716
0
    }
717
4.83k
    case Type::DCT32X8: {
718
4.83k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
4.83k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
4.83k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
4.83k
      break;
722
0
    }
723
6.45k
    case Type::DCT8X32: {
724
6.45k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
6.45k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
6.45k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
6.45k
      break;
728
0
    }
729
276k
    case Type::DCT32X16: {
730
276k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
276k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
276k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
276k
      break;
734
0
    }
735
462k
    case Type::DCT16X32: {
736
462k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
462k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
462k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
462k
      break;
740
0
    }
741
982k
    case Type::DCT32X32: {
742
982k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
982k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
982k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
982k
      break;
746
0
    }
747
28.5k
    case Type::DCT64X32: {
748
28.5k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
28.5k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
28.5k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
28.5k
      break;
752
0
    }
753
33.5k
    case Type::DCT32X64: {
754
33.5k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
33.5k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
33.5k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
33.5k
      break;
758
0
    }
759
225k
    case Type::DCT64X64: {
760
225k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
225k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
225k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
225k
      break;
764
0
    }
765
84
    case Type::DCT128X64: {
766
84
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
84
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
84
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
84
      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
51
    case Type::DCT256X256: {
799
51
      ReinterpretingDCT<
800
51
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
51
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
51
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
51
      break;
804
0
    }
805
13.2M
    case Type::DCT:
806
17.0M
    case Type::DCT2X2:
807
17.1M
    case Type::DCT4X4:
808
18.4M
    case Type::DCT4X8:
809
20.1M
    case Type::DCT8X4:
810
21.3M
    case Type::AFV0:
811
25.2M
    case Type::AFV1:
812
26.0M
    case Type::AFV2:
813
27.4M
    case Type::AFV3:
814
31.0M
    case Type::IDENTITY:
815
31.0M
      llf[0] = dc[0];
816
31.0M
      break;
817
36.3M
  };
818
36.3M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
819
820
}  // namespace
821
// NOLINTNEXTLINE(google-readability-namespace-comments)
822
}  // namespace HWY_NAMESPACE
823
}  // namespace jxl
824
HWY_AFTER_NAMESPACE();
825
826
#endif  // LIB_JXL_DEC_TRANSFORMS_INL_H_