Coverage Report

Created: 2026-10-28 07:26

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.71M
                                  float* JXL_RESTRICT scratch_space) {
41
5.71M
  static_assert(LF_ROWS == ROWS,
42
5.71M
                "ReinterpretingDCT should only be called with LF == N");
43
5.71M
  static_assert(LF_COLS == COLS,
44
5.71M
                "ReinterpretingDCT should only be called with LF == N");
45
5.71M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
5.71M
                                 scratch_space);
47
5.71M
  if (ROWS < COLS) {
48
5.42M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
11.8M
      for (size_t x = 0; x < LF_COLS; x++) {
50
8.81M
        output[y * output_stride + x] =
51
8.81M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
8.81M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
8.81M
      }
54
3.00M
    }
55
3.30M
  } else {
56
12.5M
    for (size_t y = 0; y < LF_COLS; y++) {
57
50.3M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
41.0M
        output[y * output_stride + x] =
59
41.0M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
41.0M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
41.0M
      }
62
9.24M
    }
63
3.30M
  }
64
5.71M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
1.05M
                                  float* JXL_RESTRICT scratch_space) {
41
1.05M
  static_assert(LF_ROWS == ROWS,
42
1.05M
                "ReinterpretingDCT should only be called with LF == N");
43
1.05M
  static_assert(LF_COLS == COLS,
44
1.05M
                "ReinterpretingDCT should only be called with LF == N");
45
1.05M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.05M
                                 scratch_space);
47
1.05M
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
1.05M
  } else {
56
2.10M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.15M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.10M
        output[y * output_stride + x] =
59
2.10M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.10M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.10M
      }
62
1.05M
    }
63
1.05M
  }
64
1.05M
}
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.88M
                                  float* JXL_RESTRICT scratch_space) {
41
1.88M
  static_assert(LF_ROWS == ROWS,
42
1.88M
                "ReinterpretingDCT should only be called with LF == N");
43
1.88M
  static_assert(LF_COLS == COLS,
44
1.88M
                "ReinterpretingDCT should only be called with LF == N");
45
1.88M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.88M
                                 scratch_space);
47
1.88M
  if (ROWS < COLS) {
48
3.77M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
5.66M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.77M
        output[y * output_stride + x] =
51
3.77M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.77M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.77M
      }
54
1.88M
    }
55
1.88M
  } 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.88M
}
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
584k
                                  float* JXL_RESTRICT scratch_space) {
41
584k
  static_assert(LF_ROWS == ROWS,
42
584k
                "ReinterpretingDCT should only be called with LF == N");
43
584k
  static_assert(LF_COLS == COLS,
44
584k
                "ReinterpretingDCT should only be called with LF == N");
45
584k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
584k
                                 scratch_space);
47
584k
  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
584k
  } else {
56
1.75M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.50M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.33M
        output[y * output_stride + x] =
59
2.33M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.33M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.33M
      }
62
1.16M
    }
63
584k
  }
64
584k
}
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
308k
                                  float* JXL_RESTRICT scratch_space) {
41
308k
  static_assert(LF_ROWS == ROWS,
42
308k
                "ReinterpretingDCT should only be called with LF == N");
43
308k
  static_assert(LF_COLS == COLS,
44
308k
                "ReinterpretingDCT should only be called with LF == N");
45
308k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
308k
                                 scratch_space);
47
308k
  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
308k
  } else {
56
924k
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.08M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.46M
        output[y * output_stride + x] =
59
2.46M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.46M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.46M
      }
62
616k
    }
63
308k
  }
64
308k
}
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
486k
                                  float* JXL_RESTRICT scratch_space) {
41
486k
  static_assert(LF_ROWS == ROWS,
42
486k
                "ReinterpretingDCT should only be called with LF == N");
43
486k
  static_assert(LF_COLS == COLS,
44
486k
                "ReinterpretingDCT should only be called with LF == N");
45
486k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
486k
                                 scratch_space);
47
486k
  if (ROWS < COLS) {
48
1.46M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.86M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.89M
        output[y * output_stride + x] =
51
3.89M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.89M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.89M
      }
54
973k
    }
55
486k
  } 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
486k
}
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
1.07M
                                  float* JXL_RESTRICT scratch_space) {
41
1.07M
  static_assert(LF_ROWS == ROWS,
42
1.07M
                "ReinterpretingDCT should only be called with LF == N");
43
1.07M
  static_assert(LF_COLS == COLS,
44
1.07M
                "ReinterpretingDCT should only be called with LF == N");
45
1.07M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.07M
                                 scratch_space);
47
1.07M
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
1.07M
  } else {
56
5.36M
    for (size_t y = 0; y < LF_COLS; y++) {
57
21.4M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
17.1M
        output[y * output_stride + x] =
59
17.1M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
17.1M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
17.1M
      }
62
4.28M
    }
63
1.07M
  }
64
1.07M
}
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
32.6k
                                  float* JXL_RESTRICT scratch_space) {
41
32.6k
  static_assert(LF_ROWS == ROWS,
42
32.6k
                "ReinterpretingDCT should only be called with LF == N");
43
32.6k
  static_assert(LF_COLS == COLS,
44
32.6k
                "ReinterpretingDCT should only be called with LF == N");
45
32.6k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
32.6k
                                 scratch_space);
47
32.6k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
32.6k
  } else {
56
163k
    for (size_t y = 0; y < LF_COLS; y++) {
57
1.17M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.04M
        output[y * output_stride + x] =
59
1.04M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.04M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.04M
      }
62
130k
    }
63
32.6k
  }
64
32.6k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
34.7k
                                  float* JXL_RESTRICT scratch_space) {
41
34.7k
  static_assert(LF_ROWS == ROWS,
42
34.7k
                "ReinterpretingDCT should only be called with LF == N");
43
34.7k
  static_assert(LF_COLS == COLS,
44
34.7k
                "ReinterpretingDCT should only be called with LF == N");
45
34.7k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
34.7k
                                 scratch_space);
47
34.7k
  if (ROWS < COLS) {
48
173k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.25M
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.11M
        output[y * output_stride + x] =
51
1.11M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.11M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.11M
      }
54
139k
    }
55
34.7k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
34.7k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
247k
                                  float* JXL_RESTRICT scratch_space) {
41
247k
  static_assert(LF_ROWS == ROWS,
42
247k
                "ReinterpretingDCT should only be called with LF == N");
43
247k
  static_assert(LF_COLS == COLS,
44
247k
                "ReinterpretingDCT should only be called with LF == N");
45
247k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
247k
                                 scratch_space);
47
247k
  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
247k
  } else {
56
2.23M
    for (size_t y = 0; y < LF_COLS; y++) {
57
17.8M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
15.8M
        output[y * output_stride + x] =
59
15.8M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
15.8M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
15.8M
      }
62
1.98M
    }
63
247k
  }
64
247k
}
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
111
                                  float* JXL_RESTRICT scratch_space) {
41
111
  static_assert(LF_ROWS == ROWS,
42
111
                "ReinterpretingDCT should only be called with LF == N");
43
111
  static_assert(LF_COLS == COLS,
44
111
                "ReinterpretingDCT should only be called with LF == N");
45
111
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
111
                                 scratch_space);
47
111
  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
111
  } else {
56
999
    for (size_t y = 0; y < LF_COLS; y++) {
57
15.0k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
14.2k
        output[y * output_stride + x] =
59
14.2k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
14.2k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
14.2k
      }
62
888
    }
63
111
  }
64
111
}
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
45
                                  float* JXL_RESTRICT scratch_space) {
41
45
  static_assert(LF_ROWS == ROWS,
42
45
                "ReinterpretingDCT should only be called with LF == N");
43
45
  static_assert(LF_COLS == COLS,
44
45
                "ReinterpretingDCT should only be called with LF == N");
45
45
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
45
                                 scratch_space);
47
45
  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
45
  } else {
56
1.48k
    for (size_t y = 0; y < LF_COLS; y++) {
57
47.5k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
46.0k
        output[y * output_stride + x] =
59
46.0k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
46.0k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
46.0k
      }
62
1.44k
    }
63
45
  }
64
45
}
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
85.6M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
85.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
85.6M
  static_assert(S % 2 == 0, "S should be even");
70
85.6M
  float temp[kDCTBlockSize];
71
85.6M
  constexpr size_t num_2x2 = S / 2;
72
285M
  for (size_t y = 0; y < num_2x2; y++) {
73
799M
    for (size_t x = 0; x < num_2x2; x++) {
74
599M
      float c00 = block[y * kBlockDim + x];
75
599M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
599M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
599M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
599M
      float r00 = c00 + c01 + c10 + c11;
79
599M
      float r01 = c00 + c01 - c10 - c11;
80
599M
      float r10 = c00 - c01 + c10 - c11;
81
599M
      float r11 = c00 - c01 - c10 + c11;
82
599M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
599M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
599M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
599M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
599M
    }
87
199M
  }
88
485M
  for (size_t y = 0; y < S; y++) {
89
2.79G
    for (size_t x = 0; x < S; x++) {
90
2.39G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
2.39G
    }
92
399M
  }
93
85.6M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.93M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.93M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.93M
  static_assert(S % 2 == 0, "S should be even");
70
3.93M
  float temp[kDCTBlockSize];
71
3.93M
  constexpr size_t num_2x2 = S / 2;
72
7.86M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.86M
    for (size_t x = 0; x < num_2x2; x++) {
74
3.93M
      float c00 = block[y * kBlockDim + x];
75
3.93M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
3.93M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
3.93M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
3.93M
      float r00 = c00 + c01 + c10 + c11;
79
3.93M
      float r01 = c00 + c01 - c10 - c11;
80
3.93M
      float r10 = c00 - c01 + c10 - c11;
81
3.93M
      float r11 = c00 - c01 - c10 + c11;
82
3.93M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
3.93M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
3.93M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
3.93M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
3.93M
    }
87
3.93M
  }
88
11.7M
  for (size_t y = 0; y < S; y++) {
89
23.5M
    for (size_t x = 0; x < S; x++) {
90
15.7M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
15.7M
    }
92
7.86M
  }
93
3.93M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.93M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.93M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.93M
  static_assert(S % 2 == 0, "S should be even");
70
3.93M
  float temp[kDCTBlockSize];
71
3.93M
  constexpr size_t num_2x2 = S / 2;
72
11.7M
  for (size_t y = 0; y < num_2x2; y++) {
73
23.5M
    for (size_t x = 0; x < num_2x2; x++) {
74
15.7M
      float c00 = block[y * kBlockDim + x];
75
15.7M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
15.7M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
15.7M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
15.7M
      float r00 = c00 + c01 + c10 + c11;
79
15.7M
      float r01 = c00 + c01 - c10 - c11;
80
15.7M
      float r10 = c00 - c01 + c10 - c11;
81
15.7M
      float r11 = c00 - c01 - c10 + c11;
82
15.7M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
15.7M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
15.7M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
15.7M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
15.7M
    }
87
7.86M
  }
88
19.6M
  for (size_t y = 0; y < S; y++) {
89
78.6M
    for (size_t x = 0; x < S; x++) {
90
62.9M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
62.9M
    }
92
15.7M
  }
93
3.93M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.93M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.93M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.93M
  static_assert(S % 2 == 0, "S should be even");
70
3.93M
  float temp[kDCTBlockSize];
71
3.93M
  constexpr size_t num_2x2 = S / 2;
72
19.6M
  for (size_t y = 0; y < num_2x2; y++) {
73
78.6M
    for (size_t x = 0; x < num_2x2; x++) {
74
62.9M
      float c00 = block[y * kBlockDim + x];
75
62.9M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
62.9M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
62.9M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
62.9M
      float r00 = c00 + c01 + c10 + c11;
79
62.9M
      float r01 = c00 + c01 - c10 - c11;
80
62.9M
      float r10 = c00 - c01 + c10 - c11;
81
62.9M
      float r11 = c00 - c01 - c10 + c11;
82
62.9M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
62.9M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
62.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
62.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
62.9M
    }
87
15.7M
  }
88
35.3M
  for (size_t y = 0; y < S; y++) {
89
283M
    for (size_t x = 0; x < S; x++) {
90
251M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
251M
    }
92
31.4M
  }
93
3.93M
}
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
24.6M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
24.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
24.6M
  static_assert(S % 2 == 0, "S should be even");
70
24.6M
  float temp[kDCTBlockSize];
71
24.6M
  constexpr size_t num_2x2 = S / 2;
72
49.2M
  for (size_t y = 0; y < num_2x2; y++) {
73
49.2M
    for (size_t x = 0; x < num_2x2; x++) {
74
24.6M
      float c00 = block[y * kBlockDim + x];
75
24.6M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
24.6M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
24.6M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
24.6M
      float r00 = c00 + c01 + c10 + c11;
79
24.6M
      float r01 = c00 + c01 - c10 - c11;
80
24.6M
      float r10 = c00 - c01 + c10 - c11;
81
24.6M
      float r11 = c00 - c01 - c10 + c11;
82
24.6M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
24.6M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
24.6M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
24.6M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
24.6M
    }
87
24.6M
  }
88
73.8M
  for (size_t y = 0; y < S; y++) {
89
147M
    for (size_t x = 0; x < S; x++) {
90
98.4M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
98.4M
    }
92
49.2M
  }
93
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
24.6M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
24.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
24.6M
  static_assert(S % 2 == 0, "S should be even");
70
24.6M
  float temp[kDCTBlockSize];
71
24.6M
  constexpr size_t num_2x2 = S / 2;
72
73.8M
  for (size_t y = 0; y < num_2x2; y++) {
73
147M
    for (size_t x = 0; x < num_2x2; x++) {
74
98.4M
      float c00 = block[y * kBlockDim + x];
75
98.4M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
98.4M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
98.4M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
98.4M
      float r00 = c00 + c01 + c10 + c11;
79
98.4M
      float r01 = c00 + c01 - c10 - c11;
80
98.4M
      float r10 = c00 - c01 + c10 - c11;
81
98.4M
      float r11 = c00 - c01 - c10 + c11;
82
98.4M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
98.4M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
98.4M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
98.4M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
98.4M
    }
87
49.2M
  }
88
123M
  for (size_t y = 0; y < S; y++) {
89
492M
    for (size_t x = 0; x < S; x++) {
90
393M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
393M
    }
92
98.4M
  }
93
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
24.6M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
24.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
24.6M
  static_assert(S % 2 == 0, "S should be even");
70
24.6M
  float temp[kDCTBlockSize];
71
24.6M
  constexpr size_t num_2x2 = S / 2;
72
123M
  for (size_t y = 0; y < num_2x2; y++) {
73
492M
    for (size_t x = 0; x < num_2x2; x++) {
74
393M
      float c00 = block[y * kBlockDim + x];
75
393M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
393M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
393M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
393M
      float r00 = c00 + c01 + c10 + c11;
79
393M
      float r01 = c00 + c01 - c10 - c11;
80
393M
      float r10 = c00 - c01 + c10 - c11;
81
393M
      float r11 = c00 - c01 - c10 + c11;
82
393M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
393M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
393M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
393M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
393M
    }
87
98.4M
  }
88
221M
  for (size_t y = 0; y < S; y++) {
89
1.77G
    for (size_t x = 0; x < S; x++) {
90
1.57G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.57G
    }
92
196M
  }
93
24.6M
}
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
106M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
106M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
106M
      {
98
106M
          0.25,
99
106M
          0.25,
100
106M
          0.25,
101
106M
          0.25,
102
106M
          0.25,
103
106M
          0.25,
104
106M
          0.25,
105
106M
          0.25,
106
106M
          0.25,
107
106M
          0.25,
108
106M
          0.25,
109
106M
          0.25,
110
106M
          0.25,
111
106M
          0.25,
112
106M
          0.25,
113
106M
          0.25,
114
106M
      },
115
106M
      {
116
106M
          0.876902929799142f,
117
106M
          0.2206518106944235f,
118
106M
          -0.10140050393753763f,
119
106M
          -0.1014005039375375f,
120
106M
          0.2206518106944236f,
121
106M
          -0.10140050393753777f,
122
106M
          -0.10140050393753772f,
123
106M
          -0.10140050393753763f,
124
106M
          -0.10140050393753758f,
125
106M
          -0.10140050393753769f,
126
106M
          -0.1014005039375375f,
127
106M
          -0.10140050393753768f,
128
106M
          -0.10140050393753768f,
129
106M
          -0.10140050393753759f,
130
106M
          -0.10140050393753763f,
131
106M
          -0.10140050393753741f,
132
106M
      },
133
106M
      {
134
106M
          0.0,
135
106M
          0.0,
136
106M
          0.40670075830260755f,
137
106M
          0.44444816619734445f,
138
106M
          0.0,
139
106M
          0.0,
140
106M
          0.19574399372042936f,
141
106M
          0.2929100136981264f,
142
106M
          -0.40670075830260716f,
143
106M
          -0.19574399372042872f,
144
106M
          0.0,
145
106M
          0.11379074460448091f,
146
106M
          -0.44444816619734384f,
147
106M
          -0.29291001369812636f,
148
106M
          -0.1137907446044814f,
149
106M
          0.0,
150
106M
      },
151
106M
      {
152
106M
          0.0,
153
106M
          0.0,
154
106M
          -0.21255748058288748f,
155
106M
          0.3085497062849767f,
156
106M
          0.0,
157
106M
          0.4706702258572536f,
158
106M
          -0.1621205195722993f,
159
106M
          0.0,
160
106M
          -0.21255748058287047f,
161
106M
          -0.16212051957228327f,
162
106M
          -0.47067022585725277f,
163
106M
          -0.1464291867126764f,
164
106M
          0.3085497062849487f,
165
106M
          0.0,
166
106M
          -0.14642918671266536f,
167
106M
          0.4251149611657548f,
168
106M
      },
169
106M
      {
170
106M
          0.0,
171
106M
          -0.7071067811865474f,
172
106M
          0.0,
173
106M
          0.0,
174
106M
          0.7071067811865476f,
175
106M
          0.0,
176
106M
          0.0,
177
106M
          0.0,
178
106M
          0.0,
179
106M
          0.0,
180
106M
          0.0,
181
106M
          0.0,
182
106M
          0.0,
183
106M
          0.0,
184
106M
          0.0,
185
106M
          0.0,
186
106M
      },
187
106M
      {
188
106M
          -0.4105377591765233f,
189
106M
          0.6235485373547691f,
190
106M
          -0.06435071657946274f,
191
106M
          -0.06435071657946266f,
192
106M
          0.6235485373547694f,
193
106M
          -0.06435071657946284f,
194
106M
          -0.0643507165794628f,
195
106M
          -0.06435071657946274f,
196
106M
          -0.06435071657946272f,
197
106M
          -0.06435071657946279f,
198
106M
          -0.06435071657946266f,
199
106M
          -0.06435071657946277f,
200
106M
          -0.06435071657946277f,
201
106M
          -0.06435071657946273f,
202
106M
          -0.06435071657946274f,
203
106M
          -0.0643507165794626f,
204
106M
      },
205
106M
      {
206
106M
          0.0,
207
106M
          0.0,
208
106M
          -0.4517556589999482f,
209
106M
          0.15854503551840063f,
210
106M
          0.0,
211
106M
          -0.04038515160822202f,
212
106M
          0.0074182263792423875f,
213
106M
          0.39351034269210167f,
214
106M
          -0.45175565899994635f,
215
106M
          0.007418226379244351f,
216
106M
          0.1107416575309343f,
217
106M
          0.08298163094882051f,
218
106M
          0.15854503551839705f,
219
106M
          0.3935103426921022f,
220
106M
          0.0829816309488214f,
221
106M
          -0.45175565899994796f,
222
106M
      },
223
106M
      {
224
106M
          0.0,
225
106M
          0.0,
226
106M
          -0.304684750724869f,
227
106M
          0.5112616136591823f,
228
106M
          0.0,
229
106M
          0.0,
230
106M
          -0.290480129728998f,
231
106M
          -0.06578701549142804f,
232
106M
          0.304684750724884f,
233
106M
          0.2904801297290076f,
234
106M
          0.0,
235
106M
          -0.23889773523344604f,
236
106M
          -0.5112616136592012f,
237
106M
          0.06578701549142545f,
238
106M
          0.23889773523345467f,
239
106M
          0.0,
240
106M
      },
241
106M
      {
242
106M
          0.0,
243
106M
          0.0,
244
106M
          0.3017929516615495f,
245
106M
          0.25792362796341184f,
246
106M
          0.0,
247
106M
          0.16272340142866204f,
248
106M
          0.09520022653475037f,
249
106M
          0.0,
250
106M
          0.3017929516615503f,
251
106M
          0.09520022653475055f,
252
106M
          -0.16272340142866173f,
253
106M
          -0.35312385449816297f,
254
106M
          0.25792362796341295f,
255
106M
          0.0,
256
106M
          -0.3531238544981624f,
257
106M
          -0.6035859033230976f,
258
106M
      },
259
106M
      {
260
106M
          0.0,
261
106M
          0.0,
262
106M
          0.40824829046386274f,
263
106M
          0.0,
264
106M
          0.0,
265
106M
          0.0,
266
106M
          0.0,
267
106M
          -0.4082482904638628f,
268
106M
          -0.4082482904638635f,
269
106M
          0.0,
270
106M
          0.0,
271
106M
          -0.40824829046386296f,
272
106M
          0.0,
273
106M
          0.4082482904638634f,
274
106M
          0.408248290463863f,
275
106M
          0.0,
276
106M
      },
277
106M
      {
278
106M
          0.0,
279
106M
          0.0,
280
106M
          0.1747866975480809f,
281
106M
          0.0812611176717539f,
282
106M
          0.0,
283
106M
          0.0,
284
106M
          -0.3675398009862027f,
285
106M
          -0.307882213957909f,
286
106M
          -0.17478669754808135f,
287
106M
          0.3675398009862011f,
288
106M
          0.0,
289
106M
          0.4826689115059883f,
290
106M
          -0.08126111767175039f,
291
106M
          0.30788221395790305f,
292
106M
          -0.48266891150598584f,
293
106M
          0.0,
294
106M
      },
295
106M
      {
296
106M
          0.0,
297
106M
          0.0,
298
106M
          -0.21105601049335784f,
299
106M
          0.18567180916109802f,
300
106M
          0.0,
301
106M
          0.0,
302
106M
          0.49215859013738733f,
303
106M
          -0.38525013709251915f,
304
106M
          0.21105601049335806f,
305
106M
          -0.49215859013738905f,
306
106M
          0.0,
307
106M
          0.17419412659916217f,
308
106M
          -0.18567180916109904f,
309
106M
          0.3852501370925211f,
310
106M
          -0.1741941265991621f,
311
106M
          0.0,
312
106M
      },
313
106M
      {
314
106M
          0.0,
315
106M
          0.0,
316
106M
          -0.14266084808807264f,
317
106M
          -0.3416446842253372f,
318
106M
          0.0,
319
106M
          0.7367497537172237f,
320
106M
          0.24627107722075148f,
321
106M
          -0.08574019035519306f,
322
106M
          -0.14266084808807344f,
323
106M
          0.24627107722075137f,
324
106M
          0.14883399227113567f,
325
106M
          -0.04768680350229251f,
326
106M
          -0.3416446842253373f,
327
106M
          -0.08574019035519267f,
328
106M
          -0.047686803502292804f,
329
106M
          -0.14266084808807242f,
330
106M
      },
331
106M
      {
332
106M
          0.0,
333
106M
          0.0,
334
106M
          -0.13813540350758585f,
335
106M
          0.3302282550303788f,
336
106M
          0.0,
337
106M
          0.08755115000587084f,
338
106M
          -0.07946706605909573f,
339
106M
          -0.4613374887461511f,
340
106M
          -0.13813540350758294f,
341
106M
          -0.07946706605910261f,
342
106M
          0.49724647109535086f,
343
106M
          0.12538059448563663f,
344
106M
          0.3302282550303805f,
345
106M
          -0.4613374887461554f,
346
106M
          0.12538059448564315f,
347
106M
          -0.13813540350758452f,
348
106M
      },
349
106M
      {
350
106M
          0.0,
351
106M
          0.0,
352
106M
          -0.17437602599651067f,
353
106M
          0.0702790691196284f,
354
106M
          0.0,
355
106M
          -0.2921026642334881f,
356
106M
          0.3623817333531167f,
357
106M
          0.0,
358
106M
          -0.1743760259965108f,
359
106M
          0.36238173335311646f,
360
106M
          0.29210266423348785f,
361
106M
          -0.4326608024727445f,
362
106M
          0.07027906911962818f,
363
106M
          0.0,
364
106M
          -0.4326608024727457f,
365
106M
          0.34875205199302267f,
366
106M
      },
367
106M
      {
368
106M
          0.0,
369
106M
          0.0,
370
106M
          0.11354987314994337f,
371
106M
          -0.07417504595810355f,
372
106M
          0.0,
373
106M
          0.19402893032594343f,
374
106M
          -0.435190496523228f,
375
106M
          0.21918684838857466f,
376
106M
          0.11354987314994257f,
377
106M
          -0.4351904965232251f,
378
106M
          0.5550443808910661f,
379
106M
          -0.25468277124066463f,
380
106M
          -0.07417504595810233f,
381
106M
          0.2191868483885728f,
382
106M
          -0.25468277124066413f,
383
106M
          0.1135498731499429f,
384
106M
      },
385
106M
  };
386
387
106M
  const HWY_CAPPED(float, 16) d;
388
318M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
212M
    auto pixel = Zero(d);
390
3.60G
    for (size_t j = 0; j < 16; j++) {
391
3.39G
      auto cf = Set(d, coeffs[j]);
392
3.39G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
3.39G
      pixel = MulAdd(cf, basis, pixel);
394
3.39G
    }
395
212M
    Store(pixel, d, pixels + i);
396
212M
  }
397
106M
}
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.68M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
7.68M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
7.68M
      {
98
7.68M
          0.25,
99
7.68M
          0.25,
100
7.68M
          0.25,
101
7.68M
          0.25,
102
7.68M
          0.25,
103
7.68M
          0.25,
104
7.68M
          0.25,
105
7.68M
          0.25,
106
7.68M
          0.25,
107
7.68M
          0.25,
108
7.68M
          0.25,
109
7.68M
          0.25,
110
7.68M
          0.25,
111
7.68M
          0.25,
112
7.68M
          0.25,
113
7.68M
          0.25,
114
7.68M
      },
115
7.68M
      {
116
7.68M
          0.876902929799142f,
117
7.68M
          0.2206518106944235f,
118
7.68M
          -0.10140050393753763f,
119
7.68M
          -0.1014005039375375f,
120
7.68M
          0.2206518106944236f,
121
7.68M
          -0.10140050393753777f,
122
7.68M
          -0.10140050393753772f,
123
7.68M
          -0.10140050393753763f,
124
7.68M
          -0.10140050393753758f,
125
7.68M
          -0.10140050393753769f,
126
7.68M
          -0.1014005039375375f,
127
7.68M
          -0.10140050393753768f,
128
7.68M
          -0.10140050393753768f,
129
7.68M
          -0.10140050393753759f,
130
7.68M
          -0.10140050393753763f,
131
7.68M
          -0.10140050393753741f,
132
7.68M
      },
133
7.68M
      {
134
7.68M
          0.0,
135
7.68M
          0.0,
136
7.68M
          0.40670075830260755f,
137
7.68M
          0.44444816619734445f,
138
7.68M
          0.0,
139
7.68M
          0.0,
140
7.68M
          0.19574399372042936f,
141
7.68M
          0.2929100136981264f,
142
7.68M
          -0.40670075830260716f,
143
7.68M
          -0.19574399372042872f,
144
7.68M
          0.0,
145
7.68M
          0.11379074460448091f,
146
7.68M
          -0.44444816619734384f,
147
7.68M
          -0.29291001369812636f,
148
7.68M
          -0.1137907446044814f,
149
7.68M
          0.0,
150
7.68M
      },
151
7.68M
      {
152
7.68M
          0.0,
153
7.68M
          0.0,
154
7.68M
          -0.21255748058288748f,
155
7.68M
          0.3085497062849767f,
156
7.68M
          0.0,
157
7.68M
          0.4706702258572536f,
158
7.68M
          -0.1621205195722993f,
159
7.68M
          0.0,
160
7.68M
          -0.21255748058287047f,
161
7.68M
          -0.16212051957228327f,
162
7.68M
          -0.47067022585725277f,
163
7.68M
          -0.1464291867126764f,
164
7.68M
          0.3085497062849487f,
165
7.68M
          0.0,
166
7.68M
          -0.14642918671266536f,
167
7.68M
          0.4251149611657548f,
168
7.68M
      },
169
7.68M
      {
170
7.68M
          0.0,
171
7.68M
          -0.7071067811865474f,
172
7.68M
          0.0,
173
7.68M
          0.0,
174
7.68M
          0.7071067811865476f,
175
7.68M
          0.0,
176
7.68M
          0.0,
177
7.68M
          0.0,
178
7.68M
          0.0,
179
7.68M
          0.0,
180
7.68M
          0.0,
181
7.68M
          0.0,
182
7.68M
          0.0,
183
7.68M
          0.0,
184
7.68M
          0.0,
185
7.68M
          0.0,
186
7.68M
      },
187
7.68M
      {
188
7.68M
          -0.4105377591765233f,
189
7.68M
          0.6235485373547691f,
190
7.68M
          -0.06435071657946274f,
191
7.68M
          -0.06435071657946266f,
192
7.68M
          0.6235485373547694f,
193
7.68M
          -0.06435071657946284f,
194
7.68M
          -0.0643507165794628f,
195
7.68M
          -0.06435071657946274f,
196
7.68M
          -0.06435071657946272f,
197
7.68M
          -0.06435071657946279f,
198
7.68M
          -0.06435071657946266f,
199
7.68M
          -0.06435071657946277f,
200
7.68M
          -0.06435071657946277f,
201
7.68M
          -0.06435071657946273f,
202
7.68M
          -0.06435071657946274f,
203
7.68M
          -0.0643507165794626f,
204
7.68M
      },
205
7.68M
      {
206
7.68M
          0.0,
207
7.68M
          0.0,
208
7.68M
          -0.4517556589999482f,
209
7.68M
          0.15854503551840063f,
210
7.68M
          0.0,
211
7.68M
          -0.04038515160822202f,
212
7.68M
          0.0074182263792423875f,
213
7.68M
          0.39351034269210167f,
214
7.68M
          -0.45175565899994635f,
215
7.68M
          0.007418226379244351f,
216
7.68M
          0.1107416575309343f,
217
7.68M
          0.08298163094882051f,
218
7.68M
          0.15854503551839705f,
219
7.68M
          0.3935103426921022f,
220
7.68M
          0.0829816309488214f,
221
7.68M
          -0.45175565899994796f,
222
7.68M
      },
223
7.68M
      {
224
7.68M
          0.0,
225
7.68M
          0.0,
226
7.68M
          -0.304684750724869f,
227
7.68M
          0.5112616136591823f,
228
7.68M
          0.0,
229
7.68M
          0.0,
230
7.68M
          -0.290480129728998f,
231
7.68M
          -0.06578701549142804f,
232
7.68M
          0.304684750724884f,
233
7.68M
          0.2904801297290076f,
234
7.68M
          0.0,
235
7.68M
          -0.23889773523344604f,
236
7.68M
          -0.5112616136592012f,
237
7.68M
          0.06578701549142545f,
238
7.68M
          0.23889773523345467f,
239
7.68M
          0.0,
240
7.68M
      },
241
7.68M
      {
242
7.68M
          0.0,
243
7.68M
          0.0,
244
7.68M
          0.3017929516615495f,
245
7.68M
          0.25792362796341184f,
246
7.68M
          0.0,
247
7.68M
          0.16272340142866204f,
248
7.68M
          0.09520022653475037f,
249
7.68M
          0.0,
250
7.68M
          0.3017929516615503f,
251
7.68M
          0.09520022653475055f,
252
7.68M
          -0.16272340142866173f,
253
7.68M
          -0.35312385449816297f,
254
7.68M
          0.25792362796341295f,
255
7.68M
          0.0,
256
7.68M
          -0.3531238544981624f,
257
7.68M
          -0.6035859033230976f,
258
7.68M
      },
259
7.68M
      {
260
7.68M
          0.0,
261
7.68M
          0.0,
262
7.68M
          0.40824829046386274f,
263
7.68M
          0.0,
264
7.68M
          0.0,
265
7.68M
          0.0,
266
7.68M
          0.0,
267
7.68M
          -0.4082482904638628f,
268
7.68M
          -0.4082482904638635f,
269
7.68M
          0.0,
270
7.68M
          0.0,
271
7.68M
          -0.40824829046386296f,
272
7.68M
          0.0,
273
7.68M
          0.4082482904638634f,
274
7.68M
          0.408248290463863f,
275
7.68M
          0.0,
276
7.68M
      },
277
7.68M
      {
278
7.68M
          0.0,
279
7.68M
          0.0,
280
7.68M
          0.1747866975480809f,
281
7.68M
          0.0812611176717539f,
282
7.68M
          0.0,
283
7.68M
          0.0,
284
7.68M
          -0.3675398009862027f,
285
7.68M
          -0.307882213957909f,
286
7.68M
          -0.17478669754808135f,
287
7.68M
          0.3675398009862011f,
288
7.68M
          0.0,
289
7.68M
          0.4826689115059883f,
290
7.68M
          -0.08126111767175039f,
291
7.68M
          0.30788221395790305f,
292
7.68M
          -0.48266891150598584f,
293
7.68M
          0.0,
294
7.68M
      },
295
7.68M
      {
296
7.68M
          0.0,
297
7.68M
          0.0,
298
7.68M
          -0.21105601049335784f,
299
7.68M
          0.18567180916109802f,
300
7.68M
          0.0,
301
7.68M
          0.0,
302
7.68M
          0.49215859013738733f,
303
7.68M
          -0.38525013709251915f,
304
7.68M
          0.21105601049335806f,
305
7.68M
          -0.49215859013738905f,
306
7.68M
          0.0,
307
7.68M
          0.17419412659916217f,
308
7.68M
          -0.18567180916109904f,
309
7.68M
          0.3852501370925211f,
310
7.68M
          -0.1741941265991621f,
311
7.68M
          0.0,
312
7.68M
      },
313
7.68M
      {
314
7.68M
          0.0,
315
7.68M
          0.0,
316
7.68M
          -0.14266084808807264f,
317
7.68M
          -0.3416446842253372f,
318
7.68M
          0.0,
319
7.68M
          0.7367497537172237f,
320
7.68M
          0.24627107722075148f,
321
7.68M
          -0.08574019035519306f,
322
7.68M
          -0.14266084808807344f,
323
7.68M
          0.24627107722075137f,
324
7.68M
          0.14883399227113567f,
325
7.68M
          -0.04768680350229251f,
326
7.68M
          -0.3416446842253373f,
327
7.68M
          -0.08574019035519267f,
328
7.68M
          -0.047686803502292804f,
329
7.68M
          -0.14266084808807242f,
330
7.68M
      },
331
7.68M
      {
332
7.68M
          0.0,
333
7.68M
          0.0,
334
7.68M
          -0.13813540350758585f,
335
7.68M
          0.3302282550303788f,
336
7.68M
          0.0,
337
7.68M
          0.08755115000587084f,
338
7.68M
          -0.07946706605909573f,
339
7.68M
          -0.4613374887461511f,
340
7.68M
          -0.13813540350758294f,
341
7.68M
          -0.07946706605910261f,
342
7.68M
          0.49724647109535086f,
343
7.68M
          0.12538059448563663f,
344
7.68M
          0.3302282550303805f,
345
7.68M
          -0.4613374887461554f,
346
7.68M
          0.12538059448564315f,
347
7.68M
          -0.13813540350758452f,
348
7.68M
      },
349
7.68M
      {
350
7.68M
          0.0,
351
7.68M
          0.0,
352
7.68M
          -0.17437602599651067f,
353
7.68M
          0.0702790691196284f,
354
7.68M
          0.0,
355
7.68M
          -0.2921026642334881f,
356
7.68M
          0.3623817333531167f,
357
7.68M
          0.0,
358
7.68M
          -0.1743760259965108f,
359
7.68M
          0.36238173335311646f,
360
7.68M
          0.29210266423348785f,
361
7.68M
          -0.4326608024727445f,
362
7.68M
          0.07027906911962818f,
363
7.68M
          0.0,
364
7.68M
          -0.4326608024727457f,
365
7.68M
          0.34875205199302267f,
366
7.68M
      },
367
7.68M
      {
368
7.68M
          0.0,
369
7.68M
          0.0,
370
7.68M
          0.11354987314994337f,
371
7.68M
          -0.07417504595810355f,
372
7.68M
          0.0,
373
7.68M
          0.19402893032594343f,
374
7.68M
          -0.435190496523228f,
375
7.68M
          0.21918684838857466f,
376
7.68M
          0.11354987314994257f,
377
7.68M
          -0.4351904965232251f,
378
7.68M
          0.5550443808910661f,
379
7.68M
          -0.25468277124066463f,
380
7.68M
          -0.07417504595810233f,
381
7.68M
          0.2191868483885728f,
382
7.68M
          -0.25468277124066413f,
383
7.68M
          0.1135498731499429f,
384
7.68M
      },
385
7.68M
  };
386
387
7.68M
  const HWY_CAPPED(float, 16) d;
388
23.0M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
15.3M
    auto pixel = Zero(d);
390
261M
    for (size_t j = 0; j < 16; j++) {
391
245M
      auto cf = Set(d, coeffs[j]);
392
245M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
245M
      pixel = MulAdd(cf, basis, pixel);
394
245M
    }
395
15.3M
    Store(pixel, d, pixels + i);
396
15.3M
  }
397
7.68M
}
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
98.4M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
98.4M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
98.4M
      {
98
98.4M
          0.25,
99
98.4M
          0.25,
100
98.4M
          0.25,
101
98.4M
          0.25,
102
98.4M
          0.25,
103
98.4M
          0.25,
104
98.4M
          0.25,
105
98.4M
          0.25,
106
98.4M
          0.25,
107
98.4M
          0.25,
108
98.4M
          0.25,
109
98.4M
          0.25,
110
98.4M
          0.25,
111
98.4M
          0.25,
112
98.4M
          0.25,
113
98.4M
          0.25,
114
98.4M
      },
115
98.4M
      {
116
98.4M
          0.876902929799142f,
117
98.4M
          0.2206518106944235f,
118
98.4M
          -0.10140050393753763f,
119
98.4M
          -0.1014005039375375f,
120
98.4M
          0.2206518106944236f,
121
98.4M
          -0.10140050393753777f,
122
98.4M
          -0.10140050393753772f,
123
98.4M
          -0.10140050393753763f,
124
98.4M
          -0.10140050393753758f,
125
98.4M
          -0.10140050393753769f,
126
98.4M
          -0.1014005039375375f,
127
98.4M
          -0.10140050393753768f,
128
98.4M
          -0.10140050393753768f,
129
98.4M
          -0.10140050393753759f,
130
98.4M
          -0.10140050393753763f,
131
98.4M
          -0.10140050393753741f,
132
98.4M
      },
133
98.4M
      {
134
98.4M
          0.0,
135
98.4M
          0.0,
136
98.4M
          0.40670075830260755f,
137
98.4M
          0.44444816619734445f,
138
98.4M
          0.0,
139
98.4M
          0.0,
140
98.4M
          0.19574399372042936f,
141
98.4M
          0.2929100136981264f,
142
98.4M
          -0.40670075830260716f,
143
98.4M
          -0.19574399372042872f,
144
98.4M
          0.0,
145
98.4M
          0.11379074460448091f,
146
98.4M
          -0.44444816619734384f,
147
98.4M
          -0.29291001369812636f,
148
98.4M
          -0.1137907446044814f,
149
98.4M
          0.0,
150
98.4M
      },
151
98.4M
      {
152
98.4M
          0.0,
153
98.4M
          0.0,
154
98.4M
          -0.21255748058288748f,
155
98.4M
          0.3085497062849767f,
156
98.4M
          0.0,
157
98.4M
          0.4706702258572536f,
158
98.4M
          -0.1621205195722993f,
159
98.4M
          0.0,
160
98.4M
          -0.21255748058287047f,
161
98.4M
          -0.16212051957228327f,
162
98.4M
          -0.47067022585725277f,
163
98.4M
          -0.1464291867126764f,
164
98.4M
          0.3085497062849487f,
165
98.4M
          0.0,
166
98.4M
          -0.14642918671266536f,
167
98.4M
          0.4251149611657548f,
168
98.4M
      },
169
98.4M
      {
170
98.4M
          0.0,
171
98.4M
          -0.7071067811865474f,
172
98.4M
          0.0,
173
98.4M
          0.0,
174
98.4M
          0.7071067811865476f,
175
98.4M
          0.0,
176
98.4M
          0.0,
177
98.4M
          0.0,
178
98.4M
          0.0,
179
98.4M
          0.0,
180
98.4M
          0.0,
181
98.4M
          0.0,
182
98.4M
          0.0,
183
98.4M
          0.0,
184
98.4M
          0.0,
185
98.4M
          0.0,
186
98.4M
      },
187
98.4M
      {
188
98.4M
          -0.4105377591765233f,
189
98.4M
          0.6235485373547691f,
190
98.4M
          -0.06435071657946274f,
191
98.4M
          -0.06435071657946266f,
192
98.4M
          0.6235485373547694f,
193
98.4M
          -0.06435071657946284f,
194
98.4M
          -0.0643507165794628f,
195
98.4M
          -0.06435071657946274f,
196
98.4M
          -0.06435071657946272f,
197
98.4M
          -0.06435071657946279f,
198
98.4M
          -0.06435071657946266f,
199
98.4M
          -0.06435071657946277f,
200
98.4M
          -0.06435071657946277f,
201
98.4M
          -0.06435071657946273f,
202
98.4M
          -0.06435071657946274f,
203
98.4M
          -0.0643507165794626f,
204
98.4M
      },
205
98.4M
      {
206
98.4M
          0.0,
207
98.4M
          0.0,
208
98.4M
          -0.4517556589999482f,
209
98.4M
          0.15854503551840063f,
210
98.4M
          0.0,
211
98.4M
          -0.04038515160822202f,
212
98.4M
          0.0074182263792423875f,
213
98.4M
          0.39351034269210167f,
214
98.4M
          -0.45175565899994635f,
215
98.4M
          0.007418226379244351f,
216
98.4M
          0.1107416575309343f,
217
98.4M
          0.08298163094882051f,
218
98.4M
          0.15854503551839705f,
219
98.4M
          0.3935103426921022f,
220
98.4M
          0.0829816309488214f,
221
98.4M
          -0.45175565899994796f,
222
98.4M
      },
223
98.4M
      {
224
98.4M
          0.0,
225
98.4M
          0.0,
226
98.4M
          -0.304684750724869f,
227
98.4M
          0.5112616136591823f,
228
98.4M
          0.0,
229
98.4M
          0.0,
230
98.4M
          -0.290480129728998f,
231
98.4M
          -0.06578701549142804f,
232
98.4M
          0.304684750724884f,
233
98.4M
          0.2904801297290076f,
234
98.4M
          0.0,
235
98.4M
          -0.23889773523344604f,
236
98.4M
          -0.5112616136592012f,
237
98.4M
          0.06578701549142545f,
238
98.4M
          0.23889773523345467f,
239
98.4M
          0.0,
240
98.4M
      },
241
98.4M
      {
242
98.4M
          0.0,
243
98.4M
          0.0,
244
98.4M
          0.3017929516615495f,
245
98.4M
          0.25792362796341184f,
246
98.4M
          0.0,
247
98.4M
          0.16272340142866204f,
248
98.4M
          0.09520022653475037f,
249
98.4M
          0.0,
250
98.4M
          0.3017929516615503f,
251
98.4M
          0.09520022653475055f,
252
98.4M
          -0.16272340142866173f,
253
98.4M
          -0.35312385449816297f,
254
98.4M
          0.25792362796341295f,
255
98.4M
          0.0,
256
98.4M
          -0.3531238544981624f,
257
98.4M
          -0.6035859033230976f,
258
98.4M
      },
259
98.4M
      {
260
98.4M
          0.0,
261
98.4M
          0.0,
262
98.4M
          0.40824829046386274f,
263
98.4M
          0.0,
264
98.4M
          0.0,
265
98.4M
          0.0,
266
98.4M
          0.0,
267
98.4M
          -0.4082482904638628f,
268
98.4M
          -0.4082482904638635f,
269
98.4M
          0.0,
270
98.4M
          0.0,
271
98.4M
          -0.40824829046386296f,
272
98.4M
          0.0,
273
98.4M
          0.4082482904638634f,
274
98.4M
          0.408248290463863f,
275
98.4M
          0.0,
276
98.4M
      },
277
98.4M
      {
278
98.4M
          0.0,
279
98.4M
          0.0,
280
98.4M
          0.1747866975480809f,
281
98.4M
          0.0812611176717539f,
282
98.4M
          0.0,
283
98.4M
          0.0,
284
98.4M
          -0.3675398009862027f,
285
98.4M
          -0.307882213957909f,
286
98.4M
          -0.17478669754808135f,
287
98.4M
          0.3675398009862011f,
288
98.4M
          0.0,
289
98.4M
          0.4826689115059883f,
290
98.4M
          -0.08126111767175039f,
291
98.4M
          0.30788221395790305f,
292
98.4M
          -0.48266891150598584f,
293
98.4M
          0.0,
294
98.4M
      },
295
98.4M
      {
296
98.4M
          0.0,
297
98.4M
          0.0,
298
98.4M
          -0.21105601049335784f,
299
98.4M
          0.18567180916109802f,
300
98.4M
          0.0,
301
98.4M
          0.0,
302
98.4M
          0.49215859013738733f,
303
98.4M
          -0.38525013709251915f,
304
98.4M
          0.21105601049335806f,
305
98.4M
          -0.49215859013738905f,
306
98.4M
          0.0,
307
98.4M
          0.17419412659916217f,
308
98.4M
          -0.18567180916109904f,
309
98.4M
          0.3852501370925211f,
310
98.4M
          -0.1741941265991621f,
311
98.4M
          0.0,
312
98.4M
      },
313
98.4M
      {
314
98.4M
          0.0,
315
98.4M
          0.0,
316
98.4M
          -0.14266084808807264f,
317
98.4M
          -0.3416446842253372f,
318
98.4M
          0.0,
319
98.4M
          0.7367497537172237f,
320
98.4M
          0.24627107722075148f,
321
98.4M
          -0.08574019035519306f,
322
98.4M
          -0.14266084808807344f,
323
98.4M
          0.24627107722075137f,
324
98.4M
          0.14883399227113567f,
325
98.4M
          -0.04768680350229251f,
326
98.4M
          -0.3416446842253373f,
327
98.4M
          -0.08574019035519267f,
328
98.4M
          -0.047686803502292804f,
329
98.4M
          -0.14266084808807242f,
330
98.4M
      },
331
98.4M
      {
332
98.4M
          0.0,
333
98.4M
          0.0,
334
98.4M
          -0.13813540350758585f,
335
98.4M
          0.3302282550303788f,
336
98.4M
          0.0,
337
98.4M
          0.08755115000587084f,
338
98.4M
          -0.07946706605909573f,
339
98.4M
          -0.4613374887461511f,
340
98.4M
          -0.13813540350758294f,
341
98.4M
          -0.07946706605910261f,
342
98.4M
          0.49724647109535086f,
343
98.4M
          0.12538059448563663f,
344
98.4M
          0.3302282550303805f,
345
98.4M
          -0.4613374887461554f,
346
98.4M
          0.12538059448564315f,
347
98.4M
          -0.13813540350758452f,
348
98.4M
      },
349
98.4M
      {
350
98.4M
          0.0,
351
98.4M
          0.0,
352
98.4M
          -0.17437602599651067f,
353
98.4M
          0.0702790691196284f,
354
98.4M
          0.0,
355
98.4M
          -0.2921026642334881f,
356
98.4M
          0.3623817333531167f,
357
98.4M
          0.0,
358
98.4M
          -0.1743760259965108f,
359
98.4M
          0.36238173335311646f,
360
98.4M
          0.29210266423348785f,
361
98.4M
          -0.4326608024727445f,
362
98.4M
          0.07027906911962818f,
363
98.4M
          0.0,
364
98.4M
          -0.4326608024727457f,
365
98.4M
          0.34875205199302267f,
366
98.4M
      },
367
98.4M
      {
368
98.4M
          0.0,
369
98.4M
          0.0,
370
98.4M
          0.11354987314994337f,
371
98.4M
          -0.07417504595810355f,
372
98.4M
          0.0,
373
98.4M
          0.19402893032594343f,
374
98.4M
          -0.435190496523228f,
375
98.4M
          0.21918684838857466f,
376
98.4M
          0.11354987314994257f,
377
98.4M
          -0.4351904965232251f,
378
98.4M
          0.5550443808910661f,
379
98.4M
          -0.25468277124066463f,
380
98.4M
          -0.07417504595810233f,
381
98.4M
          0.2191868483885728f,
382
98.4M
          -0.25468277124066413f,
383
98.4M
          0.1135498731499429f,
384
98.4M
      },
385
98.4M
  };
386
387
98.4M
  const HWY_CAPPED(float, 16) d;
388
295M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
196M
    auto pixel = Zero(d);
390
3.34G
    for (size_t j = 0; j < 16; j++) {
391
3.15G
      auto cf = Set(d, coeffs[j]);
392
3.15G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
3.15G
      pixel = MulAdd(cf, basis, pixel);
394
3.15G
    }
395
196M
    Store(pixel, d, pixels + i);
396
196M
  }
397
98.4M
}
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
106M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
106M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
106M
  size_t afv_x = afv_kind & 1;
404
106M
  size_t afv_y = afv_kind / 2;
405
106M
  float dcs[3] = {};
406
106M
  float block00 = coefficients[0];
407
106M
  float block01 = coefficients[1];
408
106M
  float block10 = coefficients[8];
409
106M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
106M
  dcs[1] = (block00 + block10 - block01);
411
106M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
106M
  HWY_ALIGN float coeff[4 * 4];
414
106M
  coeff[0] = dcs[0];
415
530M
  for (size_t iy = 0; iy < 4; iy++) {
416
2.12G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.69G
      if (ix == 0 && iy == 0) continue;
418
1.59G
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
1.59G
    }
420
424M
  }
421
106M
  HWY_ALIGN float block[4 * 8];
422
106M
  AFVIDCT4x4(coeff, block);
423
530M
  for (size_t iy = 0; iy < 4; iy++) {
424
2.12G
    for (size_t ix = 0; ix < 4; ix++) {
425
1.69G
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
1.69G
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
1.69G
    }
428
424M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
106M
  block[0] = dcs[1];
431
530M
  for (size_t iy = 0; iy < 4; iy++) {
432
2.12G
    for (size_t ix = 0; ix < 4; ix++) {
433
1.69G
      if (ix == 0 && iy == 0) continue;
434
1.59G
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
1.59G
    }
436
424M
  }
437
106M
  ComputeScaledIDCT<4, 4>()(
438
106M
      block,
439
106M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
106M
            pixels_stride),
441
106M
      scratch_space);
442
  // IDCT4x8.
443
106M
  block[0] = dcs[2];
444
530M
  for (size_t iy = 0; iy < 4; iy++) {
445
3.82G
    for (size_t ix = 0; ix < 8; ix++) {
446
3.39G
      if (ix == 0 && iy == 0) continue;
447
3.29G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
3.29G
    }
449
424M
  }
450
106M
  ComputeScaledIDCT<4, 8>()(
451
106M
      block,
452
106M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
106M
      scratch_space);
454
106M
}
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.27M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.27M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.27M
  size_t afv_x = afv_kind & 1;
404
1.27M
  size_t afv_y = afv_kind / 2;
405
1.27M
  float dcs[3] = {};
406
1.27M
  float block00 = coefficients[0];
407
1.27M
  float block01 = coefficients[1];
408
1.27M
  float block10 = coefficients[8];
409
1.27M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.27M
  dcs[1] = (block00 + block10 - block01);
411
1.27M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.27M
  HWY_ALIGN float coeff[4 * 4];
414
1.27M
  coeff[0] = dcs[0];
415
6.39M
  for (size_t iy = 0; iy < 4; iy++) {
416
25.5M
    for (size_t ix = 0; ix < 4; ix++) {
417
20.4M
      if (ix == 0 && iy == 0) continue;
418
19.1M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
19.1M
    }
420
5.11M
  }
421
1.27M
  HWY_ALIGN float block[4 * 8];
422
1.27M
  AFVIDCT4x4(coeff, block);
423
6.39M
  for (size_t iy = 0; iy < 4; iy++) {
424
25.5M
    for (size_t ix = 0; ix < 4; ix++) {
425
20.4M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
20.4M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
20.4M
    }
428
5.11M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.27M
  block[0] = dcs[1];
431
6.39M
  for (size_t iy = 0; iy < 4; iy++) {
432
25.5M
    for (size_t ix = 0; ix < 4; ix++) {
433
20.4M
      if (ix == 0 && iy == 0) continue;
434
19.1M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
19.1M
    }
436
5.11M
  }
437
1.27M
  ComputeScaledIDCT<4, 4>()(
438
1.27M
      block,
439
1.27M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.27M
            pixels_stride),
441
1.27M
      scratch_space);
442
  // IDCT4x8.
443
1.27M
  block[0] = dcs[2];
444
6.39M
  for (size_t iy = 0; iy < 4; iy++) {
445
46.0M
    for (size_t ix = 0; ix < 8; ix++) {
446
40.9M
      if (ix == 0 && iy == 0) continue;
447
39.6M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
39.6M
    }
449
5.11M
  }
450
1.27M
  ComputeScaledIDCT<4, 8>()(
451
1.27M
      block,
452
1.27M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.27M
      scratch_space);
454
1.27M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
4.09M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
4.09M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
4.09M
  size_t afv_x = afv_kind & 1;
404
4.09M
  size_t afv_y = afv_kind / 2;
405
4.09M
  float dcs[3] = {};
406
4.09M
  float block00 = coefficients[0];
407
4.09M
  float block01 = coefficients[1];
408
4.09M
  float block10 = coefficients[8];
409
4.09M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
4.09M
  dcs[1] = (block00 + block10 - block01);
411
4.09M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
4.09M
  HWY_ALIGN float coeff[4 * 4];
414
4.09M
  coeff[0] = dcs[0];
415
20.4M
  for (size_t iy = 0; iy < 4; iy++) {
416
81.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
65.5M
      if (ix == 0 && iy == 0) continue;
418
61.4M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
61.4M
    }
420
16.3M
  }
421
4.09M
  HWY_ALIGN float block[4 * 8];
422
4.09M
  AFVIDCT4x4(coeff, block);
423
20.4M
  for (size_t iy = 0; iy < 4; iy++) {
424
81.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
65.5M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
65.5M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
65.5M
    }
428
16.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
4.09M
  block[0] = dcs[1];
431
20.4M
  for (size_t iy = 0; iy < 4; iy++) {
432
81.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
65.5M
      if (ix == 0 && iy == 0) continue;
434
61.4M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
61.4M
    }
436
16.3M
  }
437
4.09M
  ComputeScaledIDCT<4, 4>()(
438
4.09M
      block,
439
4.09M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
4.09M
            pixels_stride),
441
4.09M
      scratch_space);
442
  // IDCT4x8.
443
4.09M
  block[0] = dcs[2];
444
20.4M
  for (size_t iy = 0; iy < 4; iy++) {
445
147M
    for (size_t ix = 0; ix < 8; ix++) {
446
131M
      if (ix == 0 && iy == 0) continue;
447
126M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
126M
    }
449
16.3M
  }
450
4.09M
  ComputeScaledIDCT<4, 8>()(
451
4.09M
      block,
452
4.09M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
4.09M
      scratch_space);
454
4.09M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
791k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
791k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
791k
  size_t afv_x = afv_kind & 1;
404
791k
  size_t afv_y = afv_kind / 2;
405
791k
  float dcs[3] = {};
406
791k
  float block00 = coefficients[0];
407
791k
  float block01 = coefficients[1];
408
791k
  float block10 = coefficients[8];
409
791k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
791k
  dcs[1] = (block00 + block10 - block01);
411
791k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
791k
  HWY_ALIGN float coeff[4 * 4];
414
791k
  coeff[0] = dcs[0];
415
3.95M
  for (size_t iy = 0; iy < 4; iy++) {
416
15.8M
    for (size_t ix = 0; ix < 4; ix++) {
417
12.6M
      if (ix == 0 && iy == 0) continue;
418
11.8M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
11.8M
    }
420
3.16M
  }
421
791k
  HWY_ALIGN float block[4 * 8];
422
791k
  AFVIDCT4x4(coeff, block);
423
3.95M
  for (size_t iy = 0; iy < 4; iy++) {
424
15.8M
    for (size_t ix = 0; ix < 4; ix++) {
425
12.6M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
12.6M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
12.6M
    }
428
3.16M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
791k
  block[0] = dcs[1];
431
3.95M
  for (size_t iy = 0; iy < 4; iy++) {
432
15.8M
    for (size_t ix = 0; ix < 4; ix++) {
433
12.6M
      if (ix == 0 && iy == 0) continue;
434
11.8M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
11.8M
    }
436
3.16M
  }
437
791k
  ComputeScaledIDCT<4, 4>()(
438
791k
      block,
439
791k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
791k
            pixels_stride),
441
791k
      scratch_space);
442
  // IDCT4x8.
443
791k
  block[0] = dcs[2];
444
3.95M
  for (size_t iy = 0; iy < 4; iy++) {
445
28.4M
    for (size_t ix = 0; ix < 8; ix++) {
446
25.3M
      if (ix == 0 && iy == 0) continue;
447
24.5M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
24.5M
    }
449
3.16M
  }
450
791k
  ComputeScaledIDCT<4, 8>()(
451
791k
      block,
452
791k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
791k
      scratch_space);
454
791k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.51M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.51M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.51M
  size_t afv_x = afv_kind & 1;
404
1.51M
  size_t afv_y = afv_kind / 2;
405
1.51M
  float dcs[3] = {};
406
1.51M
  float block00 = coefficients[0];
407
1.51M
  float block01 = coefficients[1];
408
1.51M
  float block10 = coefficients[8];
409
1.51M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.51M
  dcs[1] = (block00 + block10 - block01);
411
1.51M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.51M
  HWY_ALIGN float coeff[4 * 4];
414
1.51M
  coeff[0] = dcs[0];
415
7.57M
  for (size_t iy = 0; iy < 4; iy++) {
416
30.3M
    for (size_t ix = 0; ix < 4; ix++) {
417
24.2M
      if (ix == 0 && iy == 0) continue;
418
22.7M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
22.7M
    }
420
6.06M
  }
421
1.51M
  HWY_ALIGN float block[4 * 8];
422
1.51M
  AFVIDCT4x4(coeff, block);
423
7.57M
  for (size_t iy = 0; iy < 4; iy++) {
424
30.3M
    for (size_t ix = 0; ix < 4; ix++) {
425
24.2M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
24.2M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
24.2M
    }
428
6.06M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.51M
  block[0] = dcs[1];
431
7.57M
  for (size_t iy = 0; iy < 4; iy++) {
432
30.3M
    for (size_t ix = 0; ix < 4; ix++) {
433
24.2M
      if (ix == 0 && iy == 0) continue;
434
22.7M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
22.7M
    }
436
6.06M
  }
437
1.51M
  ComputeScaledIDCT<4, 4>()(
438
1.51M
      block,
439
1.51M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.51M
            pixels_stride),
441
1.51M
      scratch_space);
442
  // IDCT4x8.
443
1.51M
  block[0] = dcs[2];
444
7.57M
  for (size_t iy = 0; iy < 4; iy++) {
445
54.5M
    for (size_t ix = 0; ix < 8; ix++) {
446
48.5M
      if (ix == 0 && iy == 0) continue;
447
46.9M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
46.9M
    }
449
6.06M
  }
450
1.51M
  ComputeScaledIDCT<4, 8>()(
451
1.51M
      block,
452
1.51M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.51M
      scratch_space);
454
1.51M
}
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
24.6M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
24.6M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
24.6M
  size_t afv_x = afv_kind & 1;
404
24.6M
  size_t afv_y = afv_kind / 2;
405
24.6M
  float dcs[3] = {};
406
24.6M
  float block00 = coefficients[0];
407
24.6M
  float block01 = coefficients[1];
408
24.6M
  float block10 = coefficients[8];
409
24.6M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
24.6M
  dcs[1] = (block00 + block10 - block01);
411
24.6M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
24.6M
  HWY_ALIGN float coeff[4 * 4];
414
24.6M
  coeff[0] = dcs[0];
415
123M
  for (size_t iy = 0; iy < 4; iy++) {
416
492M
    for (size_t ix = 0; ix < 4; ix++) {
417
393M
      if (ix == 0 && iy == 0) continue;
418
369M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
369M
    }
420
98.4M
  }
421
24.6M
  HWY_ALIGN float block[4 * 8];
422
24.6M
  AFVIDCT4x4(coeff, block);
423
123M
  for (size_t iy = 0; iy < 4; iy++) {
424
492M
    for (size_t ix = 0; ix < 4; ix++) {
425
393M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
393M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
393M
    }
428
98.4M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
24.6M
  block[0] = dcs[1];
431
123M
  for (size_t iy = 0; iy < 4; iy++) {
432
492M
    for (size_t ix = 0; ix < 4; ix++) {
433
393M
      if (ix == 0 && iy == 0) continue;
434
369M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
369M
    }
436
98.4M
  }
437
24.6M
  ComputeScaledIDCT<4, 4>()(
438
24.6M
      block,
439
24.6M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
24.6M
            pixels_stride),
441
24.6M
      scratch_space);
442
  // IDCT4x8.
443
24.6M
  block[0] = dcs[2];
444
123M
  for (size_t iy = 0; iy < 4; iy++) {
445
886M
    for (size_t ix = 0; ix < 8; ix++) {
446
787M
      if (ix == 0 && iy == 0) continue;
447
763M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
763M
    }
449
98.4M
  }
450
24.6M
  ComputeScaledIDCT<4, 8>()(
451
24.6M
      block,
452
24.6M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
24.6M
      scratch_space);
454
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
24.6M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
24.6M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
24.6M
  size_t afv_x = afv_kind & 1;
404
24.6M
  size_t afv_y = afv_kind / 2;
405
24.6M
  float dcs[3] = {};
406
24.6M
  float block00 = coefficients[0];
407
24.6M
  float block01 = coefficients[1];
408
24.6M
  float block10 = coefficients[8];
409
24.6M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
24.6M
  dcs[1] = (block00 + block10 - block01);
411
24.6M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
24.6M
  HWY_ALIGN float coeff[4 * 4];
414
24.6M
  coeff[0] = dcs[0];
415
123M
  for (size_t iy = 0; iy < 4; iy++) {
416
492M
    for (size_t ix = 0; ix < 4; ix++) {
417
393M
      if (ix == 0 && iy == 0) continue;
418
369M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
369M
    }
420
98.4M
  }
421
24.6M
  HWY_ALIGN float block[4 * 8];
422
24.6M
  AFVIDCT4x4(coeff, block);
423
123M
  for (size_t iy = 0; iy < 4; iy++) {
424
492M
    for (size_t ix = 0; ix < 4; ix++) {
425
393M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
393M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
393M
    }
428
98.4M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
24.6M
  block[0] = dcs[1];
431
123M
  for (size_t iy = 0; iy < 4; iy++) {
432
492M
    for (size_t ix = 0; ix < 4; ix++) {
433
393M
      if (ix == 0 && iy == 0) continue;
434
369M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
369M
    }
436
98.4M
  }
437
24.6M
  ComputeScaledIDCT<4, 4>()(
438
24.6M
      block,
439
24.6M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
24.6M
            pixels_stride),
441
24.6M
      scratch_space);
442
  // IDCT4x8.
443
24.6M
  block[0] = dcs[2];
444
123M
  for (size_t iy = 0; iy < 4; iy++) {
445
886M
    for (size_t ix = 0; ix < 8; ix++) {
446
787M
      if (ix == 0 && iy == 0) continue;
447
763M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
763M
    }
449
98.4M
  }
450
24.6M
  ComputeScaledIDCT<4, 8>()(
451
24.6M
      block,
452
24.6M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
24.6M
      scratch_space);
454
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
24.6M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
24.6M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
24.6M
  size_t afv_x = afv_kind & 1;
404
24.6M
  size_t afv_y = afv_kind / 2;
405
24.6M
  float dcs[3] = {};
406
24.6M
  float block00 = coefficients[0];
407
24.6M
  float block01 = coefficients[1];
408
24.6M
  float block10 = coefficients[8];
409
24.6M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
24.6M
  dcs[1] = (block00 + block10 - block01);
411
24.6M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
24.6M
  HWY_ALIGN float coeff[4 * 4];
414
24.6M
  coeff[0] = dcs[0];
415
123M
  for (size_t iy = 0; iy < 4; iy++) {
416
492M
    for (size_t ix = 0; ix < 4; ix++) {
417
393M
      if (ix == 0 && iy == 0) continue;
418
369M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
369M
    }
420
98.4M
  }
421
24.6M
  HWY_ALIGN float block[4 * 8];
422
24.6M
  AFVIDCT4x4(coeff, block);
423
123M
  for (size_t iy = 0; iy < 4; iy++) {
424
492M
    for (size_t ix = 0; ix < 4; ix++) {
425
393M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
393M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
393M
    }
428
98.4M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
24.6M
  block[0] = dcs[1];
431
123M
  for (size_t iy = 0; iy < 4; iy++) {
432
492M
    for (size_t ix = 0; ix < 4; ix++) {
433
393M
      if (ix == 0 && iy == 0) continue;
434
369M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
369M
    }
436
98.4M
  }
437
24.6M
  ComputeScaledIDCT<4, 4>()(
438
24.6M
      block,
439
24.6M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
24.6M
            pixels_stride),
441
24.6M
      scratch_space);
442
  // IDCT4x8.
443
24.6M
  block[0] = dcs[2];
444
123M
  for (size_t iy = 0; iy < 4; iy++) {
445
886M
    for (size_t ix = 0; ix < 8; ix++) {
446
787M
      if (ix == 0 && iy == 0) continue;
447
763M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
763M
    }
449
98.4M
  }
450
24.6M
  ComputeScaledIDCT<4, 8>()(
451
24.6M
      block,
452
24.6M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
24.6M
      scratch_space);
454
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
24.6M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
24.6M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
24.6M
  size_t afv_x = afv_kind & 1;
404
24.6M
  size_t afv_y = afv_kind / 2;
405
24.6M
  float dcs[3] = {};
406
24.6M
  float block00 = coefficients[0];
407
24.6M
  float block01 = coefficients[1];
408
24.6M
  float block10 = coefficients[8];
409
24.6M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
24.6M
  dcs[1] = (block00 + block10 - block01);
411
24.6M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
24.6M
  HWY_ALIGN float coeff[4 * 4];
414
24.6M
  coeff[0] = dcs[0];
415
123M
  for (size_t iy = 0; iy < 4; iy++) {
416
492M
    for (size_t ix = 0; ix < 4; ix++) {
417
393M
      if (ix == 0 && iy == 0) continue;
418
369M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
369M
    }
420
98.4M
  }
421
24.6M
  HWY_ALIGN float block[4 * 8];
422
24.6M
  AFVIDCT4x4(coeff, block);
423
123M
  for (size_t iy = 0; iy < 4; iy++) {
424
492M
    for (size_t ix = 0; ix < 4; ix++) {
425
393M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
393M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
393M
    }
428
98.4M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
24.6M
  block[0] = dcs[1];
431
123M
  for (size_t iy = 0; iy < 4; iy++) {
432
492M
    for (size_t ix = 0; ix < 4; ix++) {
433
393M
      if (ix == 0 && iy == 0) continue;
434
369M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
369M
    }
436
98.4M
  }
437
24.6M
  ComputeScaledIDCT<4, 4>()(
438
24.6M
      block,
439
24.6M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
24.6M
            pixels_stride),
441
24.6M
      scratch_space);
442
  // IDCT4x8.
443
24.6M
  block[0] = dcs[2];
444
123M
  for (size_t iy = 0; iy < 4; iy++) {
445
886M
    for (size_t ix = 0; ix < 8; ix++) {
446
787M
      if (ix == 0 && iy == 0) continue;
447
763M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
763M
    }
449
98.4M
  }
450
24.6M
  ComputeScaledIDCT<4, 8>()(
451
24.6M
      block,
452
24.6M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
24.6M
      scratch_space);
454
24.6M
}
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
346M
                                        float* scratch_space) {
461
346M
  using Type = AcStrategyType;
462
346M
  switch (strategy) {
463
28.3M
    case Type::IDENTITY: {
464
28.3M
      float dcs[4] = {};
465
28.3M
      float block00 = coefficients[0];
466
28.3M
      float block01 = coefficients[1];
467
28.3M
      float block10 = coefficients[8];
468
28.3M
      float block11 = coefficients[9];
469
28.3M
      dcs[0] = block00 + block01 + block10 + block11;
470
28.3M
      dcs[1] = block00 + block01 - block10 - block11;
471
28.3M
      dcs[2] = block00 - block01 + block10 - block11;
472
28.3M
      dcs[3] = block00 - block01 - block10 + block11;
473
85.0M
      for (size_t y = 0; y < 2; y++) {
474
170M
        for (size_t x = 0; x < 2; x++) {
475
113M
          float block_dc = dcs[y * 2 + x];
476
113M
          float residual_sum = 0;
477
567M
          for (size_t iy = 0; iy < 4; iy++) {
478
2.26G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.81G
              if (ix == 0 && iy == 0) continue;
480
1.70G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.70G
            }
482
453M
          }
483
113M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
113M
              block_dc - residual_sum * (1.0f / 16);
485
567M
          for (size_t iy = 0; iy < 4; iy++) {
486
2.26G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.81G
              if (ix == 1 && iy == 1) continue;
488
1.70G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.70G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.70G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.70G
            }
492
453M
          }
493
113M
          pixels[y * 4 * pixels_stride + x * 4] =
494
113M
              coefficients[(y + 2) * 8 + x + 2] +
495
113M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
113M
        }
497
56.7M
      }
498
28.3M
      break;
499
0
    }
500
26.3M
    case Type::DCT8X4: {
501
26.3M
      float dcs[2] = {};
502
26.3M
      float block0 = coefficients[0];
503
26.3M
      float block1 = coefficients[8];
504
26.3M
      dcs[0] = block0 + block1;
505
26.3M
      dcs[1] = block0 - block1;
506
79.1M
      for (size_t x = 0; x < 2; x++) {
507
52.7M
        HWY_ALIGN float block[4 * 8];
508
52.7M
        block[0] = dcs[x];
509
263M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.90G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.68G
            if (ix == 0 && iy == 0) continue;
512
1.63G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.63G
          }
514
211M
        }
515
52.7M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
52.7M
                                  scratch_space);
517
52.7M
      }
518
26.3M
      break;
519
0
    }
520
25.9M
    case Type::DCT4X8: {
521
25.9M
      float dcs[2] = {};
522
25.9M
      float block0 = coefficients[0];
523
25.9M
      float block1 = coefficients[8];
524
25.9M
      dcs[0] = block0 + block1;
525
25.9M
      dcs[1] = block0 - block1;
526
77.9M
      for (size_t y = 0; y < 2; y++) {
527
51.9M
        HWY_ALIGN float block[4 * 8];
528
51.9M
        block[0] = dcs[y];
529
259M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.87G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.66G
            if (ix == 0 && iy == 0) continue;
532
1.61G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.61G
          }
534
207M
        }
535
51.9M
        ComputeScaledIDCT<4, 8>()(
536
51.9M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
51.9M
            scratch_space);
538
51.9M
      }
539
25.9M
      break;
540
0
    }
541
24.6M
    case Type::DCT4X4: {
542
24.6M
      float dcs[4] = {};
543
24.6M
      float block00 = coefficients[0];
544
24.6M
      float block01 = coefficients[1];
545
24.6M
      float block10 = coefficients[8];
546
24.6M
      float block11 = coefficients[9];
547
24.6M
      dcs[0] = block00 + block01 + block10 + block11;
548
24.6M
      dcs[1] = block00 + block01 - block10 - block11;
549
24.6M
      dcs[2] = block00 - block01 + block10 - block11;
550
24.6M
      dcs[3] = block00 - block01 - block10 + block11;
551
73.9M
      for (size_t y = 0; y < 2; y++) {
552
147M
        for (size_t x = 0; x < 2; x++) {
553
98.6M
          HWY_ALIGN float block[4 * 4];
554
98.6M
          block[0] = dcs[y * 2 + x];
555
493M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.97G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.57G
              if (ix == 0 && iy == 0) continue;
558
1.47G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.47G
            }
560
394M
          }
561
98.6M
          ComputeScaledIDCT<4, 4>()(
562
98.6M
              block,
563
98.6M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
98.6M
              scratch_space);
565
98.6M
        }
566
49.3M
      }
567
24.6M
      break;
568
0
    }
569
28.5M
    case Type::DCT2X2: {
570
28.5M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
28.5M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
28.5M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
28.5M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
28.5M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
256M
      for (size_t y = 0; y < kBlockDim; y++) {
576
2.05G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.82G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.82G
        }
579
228M
      }
580
28.5M
      break;
581
0
    }
582
10.5M
    case Type::DCT16X16: {
583
10.5M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
10.5M
                                  scratch_space);
585
10.5M
      break;
586
0
    }
587
20.6M
    case Type::DCT16X8: {
588
20.6M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
20.6M
                                 scratch_space);
590
20.6M
      break;
591
0
    }
592
21.6M
    case Type::DCT8X16: {
593
21.6M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
21.6M
                                 scratch_space);
595
21.6M
      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
4.12M
    case Type::DCT32X16: {
608
4.12M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
4.12M
                                  scratch_space);
610
4.12M
      break;
611
0
    }
612
4.36M
    case Type::DCT16X32: {
613
4.36M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
4.36M
                                  scratch_space);
615
4.36M
      break;
616
0
    }
617
3.02M
    case Type::DCT32X32: {
618
3.02M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
3.02M
                                  scratch_space);
620
3.02M
      break;
621
0
    }
622
38.7M
    case Type::DCT: {
623
38.7M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
38.7M
                                scratch_space);
625
38.7M
      break;
626
0
    }
627
25.8M
    case Type::AFV0: {
628
25.8M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
25.8M
      break;
630
0
    }
631
28.7M
    case Type::AFV1: {
632
28.7M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
28.7M
      break;
634
0
    }
635
25.4M
    case Type::AFV2: {
636
25.4M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
25.4M
      break;
638
0
    }
639
26.1M
    case Type::AFV3: {
640
26.1M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
26.1M
      break;
642
0
    }
643
1.28M
    case Type::DCT64X32: {
644
1.28M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.28M
                                  scratch_space);
646
1.28M
      break;
647
0
    }
648
847k
    case Type::DCT32X64: {
649
847k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
847k
                                  scratch_space);
651
847k
      break;
652
0
    }
653
587k
    case Type::DCT64X64: {
654
587k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
587k
                                  scratch_space);
656
587k
      break;
657
0
    }
658
111
    case Type::DCT128X64: {
659
111
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
111
                                   scratch_space);
661
111
      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
45
    case Type::DCT256X256: {
684
45
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
45
                                    scratch_space);
686
45
      break;
687
0
    }
688
346M
  }
689
346M
}
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
38.4M
                                        float* scratch_space) {
461
38.4M
  using Type = AcStrategyType;
462
38.4M
  switch (strategy) {
463
3.74M
    case Type::IDENTITY: {
464
3.74M
      float dcs[4] = {};
465
3.74M
      float block00 = coefficients[0];
466
3.74M
      float block01 = coefficients[1];
467
3.74M
      float block10 = coefficients[8];
468
3.74M
      float block11 = coefficients[9];
469
3.74M
      dcs[0] = block00 + block01 + block10 + block11;
470
3.74M
      dcs[1] = block00 + block01 - block10 - block11;
471
3.74M
      dcs[2] = block00 - block01 + block10 - block11;
472
3.74M
      dcs[3] = block00 - block01 - block10 + block11;
473
11.2M
      for (size_t y = 0; y < 2; y++) {
474
22.4M
        for (size_t x = 0; x < 2; x++) {
475
14.9M
          float block_dc = dcs[y * 2 + x];
476
14.9M
          float residual_sum = 0;
477
74.8M
          for (size_t iy = 0; iy < 4; iy++) {
478
299M
            for (size_t ix = 0; ix < 4; ix++) {
479
239M
              if (ix == 0 && iy == 0) continue;
480
224M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
224M
            }
482
59.8M
          }
483
14.9M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
14.9M
              block_dc - residual_sum * (1.0f / 16);
485
74.8M
          for (size_t iy = 0; iy < 4; iy++) {
486
299M
            for (size_t ix = 0; ix < 4; ix++) {
487
239M
              if (ix == 1 && iy == 1) continue;
488
224M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
224M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
224M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
224M
            }
492
59.8M
          }
493
14.9M
          pixels[y * 4 * pixels_stride + x * 4] =
494
14.9M
              coefficients[(y + 2) * 8 + x + 2] +
495
14.9M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
14.9M
        }
497
7.48M
      }
498
3.74M
      break;
499
0
    }
500
1.78M
    case Type::DCT8X4: {
501
1.78M
      float dcs[2] = {};
502
1.78M
      float block0 = coefficients[0];
503
1.78M
      float block1 = coefficients[8];
504
1.78M
      dcs[0] = block0 + block1;
505
1.78M
      dcs[1] = block0 - block1;
506
5.34M
      for (size_t x = 0; x < 2; x++) {
507
3.56M
        HWY_ALIGN float block[4 * 8];
508
3.56M
        block[0] = dcs[x];
509
17.8M
        for (size_t iy = 0; iy < 4; iy++) {
510
128M
          for (size_t ix = 0; ix < 8; ix++) {
511
114M
            if (ix == 0 && iy == 0) continue;
512
110M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
110M
          }
514
14.2M
        }
515
3.56M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
3.56M
                                  scratch_space);
517
3.56M
      }
518
1.78M
      break;
519
0
    }
520
1.38M
    case Type::DCT4X8: {
521
1.38M
      float dcs[2] = {};
522
1.38M
      float block0 = coefficients[0];
523
1.38M
      float block1 = coefficients[8];
524
1.38M
      dcs[0] = block0 + block1;
525
1.38M
      dcs[1] = block0 - block1;
526
4.14M
      for (size_t y = 0; y < 2; y++) {
527
2.76M
        HWY_ALIGN float block[4 * 8];
528
2.76M
        block[0] = dcs[y];
529
13.8M
        for (size_t iy = 0; iy < 4; iy++) {
530
99.4M
          for (size_t ix = 0; ix < 8; ix++) {
531
88.4M
            if (ix == 0 && iy == 0) continue;
532
85.6M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
85.6M
          }
534
11.0M
        }
535
2.76M
        ComputeScaledIDCT<4, 8>()(
536
2.76M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
2.76M
            scratch_space);
538
2.76M
      }
539
1.38M
      break;
540
0
    }
541
48.0k
    case Type::DCT4X4: {
542
48.0k
      float dcs[4] = {};
543
48.0k
      float block00 = coefficients[0];
544
48.0k
      float block01 = coefficients[1];
545
48.0k
      float block10 = coefficients[8];
546
48.0k
      float block11 = coefficients[9];
547
48.0k
      dcs[0] = block00 + block01 + block10 + block11;
548
48.0k
      dcs[1] = block00 + block01 - block10 - block11;
549
48.0k
      dcs[2] = block00 - block01 + block10 - block11;
550
48.0k
      dcs[3] = block00 - block01 - block10 + block11;
551
144k
      for (size_t y = 0; y < 2; y++) {
552
288k
        for (size_t x = 0; x < 2; x++) {
553
192k
          HWY_ALIGN float block[4 * 4];
554
192k
          block[0] = dcs[y * 2 + x];
555
961k
          for (size_t iy = 0; iy < 4; iy++) {
556
3.84M
            for (size_t ix = 0; ix < 4; ix++) {
557
3.07M
              if (ix == 0 && iy == 0) continue;
558
2.88M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
2.88M
            }
560
769k
          }
561
192k
          ComputeScaledIDCT<4, 4>()(
562
192k
              block,
563
192k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
192k
              scratch_space);
565
192k
        }
566
96.1k
      }
567
48.0k
      break;
568
0
    }
569
3.93M
    case Type::DCT2X2: {
570
3.93M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
3.93M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
3.93M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
3.93M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
3.93M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
35.3M
      for (size_t y = 0; y < kBlockDim; y++) {
576
283M
        for (size_t x = 0; x < kBlockDim; x++) {
577
251M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
251M
        }
579
31.4M
      }
580
3.93M
      break;
581
0
    }
582
584k
    case Type::DCT16X16: {
583
584k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
584k
                                  scratch_space);
585
584k
      break;
586
0
    }
587
1.05M
    case Type::DCT16X8: {
588
1.05M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
1.05M
                                 scratch_space);
590
1.05M
      break;
591
0
    }
592
1.88M
    case Type::DCT8X16: {
593
1.88M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
1.88M
                                 scratch_space);
595
1.88M
      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
308k
    case Type::DCT32X16: {
608
308k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
308k
                                  scratch_space);
610
308k
      break;
611
0
    }
612
486k
    case Type::DCT16X32: {
613
486k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
486k
                                  scratch_space);
615
486k
      break;
616
0
    }
617
1.07M
    case Type::DCT32X32: {
618
1.07M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.07M
                                  scratch_space);
620
1.07M
      break;
621
0
    }
622
14.1M
    case Type::DCT: {
623
14.1M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
14.1M
                                scratch_space);
625
14.1M
      break;
626
0
    }
627
1.27M
    case Type::AFV0: {
628
1.27M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
1.27M
      break;
630
0
    }
631
4.09M
    case Type::AFV1: {
632
4.09M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
4.09M
      break;
634
0
    }
635
791k
    case Type::AFV2: {
636
791k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
791k
      break;
638
0
    }
639
1.51M
    case Type::AFV3: {
640
1.51M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
1.51M
      break;
642
0
    }
643
32.6k
    case Type::DCT64X32: {
644
32.6k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
32.6k
                                  scratch_space);
646
32.6k
      break;
647
0
    }
648
34.7k
    case Type::DCT32X64: {
649
34.7k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
34.7k
                                  scratch_space);
651
34.7k
      break;
652
0
    }
653
247k
    case Type::DCT64X64: {
654
247k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
247k
                                  scratch_space);
656
247k
      break;
657
0
    }
658
111
    case Type::DCT128X64: {
659
111
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
111
                                   scratch_space);
661
111
      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
45
    case Type::DCT256X256: {
684
45
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
45
                                    scratch_space);
686
45
      break;
687
0
    }
688
38.4M
  }
689
38.4M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Line
Count
Source
460
307M
                                        float* scratch_space) {
461
307M
  using Type = AcStrategyType;
462
307M
  switch (strategy) {
463
24.6M
    case Type::IDENTITY: {
464
24.6M
      float dcs[4] = {};
465
24.6M
      float block00 = coefficients[0];
466
24.6M
      float block01 = coefficients[1];
467
24.6M
      float block10 = coefficients[8];
468
24.6M
      float block11 = coefficients[9];
469
24.6M
      dcs[0] = block00 + block01 + block10 + block11;
470
24.6M
      dcs[1] = block00 + block01 - block10 - block11;
471
24.6M
      dcs[2] = block00 - block01 + block10 - block11;
472
24.6M
      dcs[3] = block00 - block01 - block10 + block11;
473
73.8M
      for (size_t y = 0; y < 2; y++) {
474
147M
        for (size_t x = 0; x < 2; x++) {
475
98.4M
          float block_dc = dcs[y * 2 + x];
476
98.4M
          float residual_sum = 0;
477
492M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.96G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.57G
              if (ix == 0 && iy == 0) continue;
480
1.47G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.47G
            }
482
393M
          }
483
98.4M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
98.4M
              block_dc - residual_sum * (1.0f / 16);
485
492M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.96G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.57G
              if (ix == 1 && iy == 1) continue;
488
1.47G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.47G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.47G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.47G
            }
492
393M
          }
493
98.4M
          pixels[y * 4 * pixels_stride + x * 4] =
494
98.4M
              coefficients[(y + 2) * 8 + x + 2] +
495
98.4M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
98.4M
        }
497
49.2M
      }
498
24.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.8M
      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
196M
        }
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.6M
    case Type::DCT4X8: {
521
24.6M
      float dcs[2] = {};
522
24.6M
      float block0 = coefficients[0];
523
24.6M
      float block1 = coefficients[8];
524
24.6M
      dcs[0] = block0 + block1;
525
24.6M
      dcs[1] = block0 - block1;
526
73.8M
      for (size_t y = 0; y < 2; y++) {
527
49.2M
        HWY_ALIGN float block[4 * 8];
528
49.2M
        block[0] = dcs[y];
529
246M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.77G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.57G
            if (ix == 0 && iy == 0) continue;
532
1.52G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.52G
          }
534
196M
        }
535
49.2M
        ComputeScaledIDCT<4, 8>()(
536
49.2M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
49.2M
            scratch_space);
538
49.2M
      }
539
24.6M
      break;
540
0
    }
541
24.6M
    case Type::DCT4X4: {
542
24.6M
      float dcs[4] = {};
543
24.6M
      float block00 = coefficients[0];
544
24.6M
      float block01 = coefficients[1];
545
24.6M
      float block10 = coefficients[8];
546
24.6M
      float block11 = coefficients[9];
547
24.6M
      dcs[0] = block00 + block01 + block10 + block11;
548
24.6M
      dcs[1] = block00 + block01 - block10 - block11;
549
24.6M
      dcs[2] = block00 - block01 + block10 - block11;
550
24.6M
      dcs[3] = block00 - block01 - block10 + block11;
551
73.8M
      for (size_t y = 0; y < 2; y++) {
552
147M
        for (size_t x = 0; x < 2; x++) {
553
98.4M
          HWY_ALIGN float block[4 * 4];
554
98.4M
          block[0] = dcs[y * 2 + x];
555
492M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.96G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.57G
              if (ix == 0 && iy == 0) continue;
558
1.47G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.47G
            }
560
393M
          }
561
98.4M
          ComputeScaledIDCT<4, 4>()(
562
98.4M
              block,
563
98.4M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
98.4M
              scratch_space);
565
98.4M
        }
566
49.2M
      }
567
24.6M
      break;
568
0
    }
569
24.6M
    case Type::DCT2X2: {
570
24.6M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
24.6M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
24.6M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
24.6M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
24.6M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
221M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.77G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.57G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.57G
        }
579
196M
      }
580
24.6M
      break;
581
0
    }
582
9.99M
    case Type::DCT16X16: {
583
9.99M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
9.99M
                                  scratch_space);
585
9.99M
      break;
586
0
    }
587
19.6M
    case Type::DCT16X8: {
588
19.6M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
19.6M
                                 scratch_space);
590
19.6M
      break;
591
0
    }
592
19.7M
    case Type::DCT8X16: {
593
19.7M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
19.7M
                                 scratch_space);
595
19.7M
      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.81M
    case Type::DCT32X16: {
608
3.81M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.81M
                                  scratch_space);
610
3.81M
      break;
611
0
    }
612
3.87M
    case Type::DCT16X32: {
613
3.87M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.87M
                                  scratch_space);
615
3.87M
      break;
616
0
    }
617
1.95M
    case Type::DCT32X32: {
618
1.95M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.95M
                                  scratch_space);
620
1.95M
      break;
621
0
    }
622
24.6M
    case Type::DCT: {
623
24.6M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
24.6M
                                scratch_space);
625
24.6M
      break;
626
0
    }
627
24.6M
    case Type::AFV0: {
628
24.6M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
24.6M
      break;
630
0
    }
631
24.6M
    case Type::AFV1: {
632
24.6M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
24.6M
      break;
634
0
    }
635
24.6M
    case Type::AFV2: {
636
24.6M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
24.6M
      break;
638
0
    }
639
24.6M
    case Type::AFV3: {
640
24.6M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
24.6M
      break;
642
0
    }
643
1.24M
    case Type::DCT64X32: {
644
1.24M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.24M
                                  scratch_space);
646
1.24M
      break;
647
0
    }
648
813k
    case Type::DCT32X64: {
649
813k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
813k
                                  scratch_space);
651
813k
      break;
652
0
    }
653
339k
    case Type::DCT64X64: {
654
339k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
339k
                                  scratch_space);
656
339k
      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
307M
  }
689
307M
}
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
38.4M
                                              float* JXL_RESTRICT scratch) {
695
38.4M
  using Type = AcStrategyType;
696
38.4M
  HWY_ALIGN float warm_block[4 * 4];
697
38.4M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
38.4M
  switch (strategy) {
699
1.05M
    case Type::DCT16X8: {
700
1.05M
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
1.05M
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
1.05M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
1.05M
      break;
704
0
    }
705
1.88M
    case Type::DCT8X16: {
706
1.88M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.88M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.88M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.88M
      break;
710
0
    }
711
584k
    case Type::DCT16X16: {
712
584k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
584k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
584k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
584k
      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
308k
    case Type::DCT32X16: {
730
308k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
308k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
308k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
308k
      break;
734
0
    }
735
486k
    case Type::DCT16X32: {
736
486k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
486k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
486k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
486k
      break;
740
0
    }
741
1.07M
    case Type::DCT32X32: {
742
1.07M
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
1.07M
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
1.07M
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
1.07M
      break;
746
0
    }
747
32.6k
    case Type::DCT64X32: {
748
32.6k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
32.6k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
32.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
32.6k
      break;
752
0
    }
753
34.7k
    case Type::DCT32X64: {
754
34.7k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
34.7k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
34.7k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
34.7k
      break;
758
0
    }
759
247k
    case Type::DCT64X64: {
760
247k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
247k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
247k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
247k
      break;
764
0
    }
765
111
    case Type::DCT128X64: {
766
111
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
111
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
111
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
111
      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
45
    case Type::DCT256X256: {
799
45
      ReinterpretingDCT<
800
45
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
45
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
45
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
45
      break;
804
0
    }
805
14.1M
    case Type::DCT:
806
18.0M
    case Type::DCT2X2:
807
18.1M
    case Type::DCT4X4:
808
19.5M
    case Type::DCT4X8:
809
21.3M
    case Type::DCT8X4:
810
22.5M
    case Type::AFV0:
811
26.6M
    case Type::AFV1:
812
27.4M
    case Type::AFV2:
813
28.9M
    case Type::AFV3:
814
32.7M
    case Type::IDENTITY:
815
32.7M
      llf[0] = dc[0];
816
32.7M
      break;
817
38.4M
  };
818
38.4M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Line
Count
Source
694
38.4M
                                              float* JXL_RESTRICT scratch) {
695
38.4M
  using Type = AcStrategyType;
696
38.4M
  HWY_ALIGN float warm_block[4 * 4];
697
38.4M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
38.4M
  switch (strategy) {
699
1.05M
    case Type::DCT16X8: {
700
1.05M
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
1.05M
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
1.05M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
1.05M
      break;
704
0
    }
705
1.88M
    case Type::DCT8X16: {
706
1.88M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.88M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.88M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.88M
      break;
710
0
    }
711
584k
    case Type::DCT16X16: {
712
584k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
584k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
584k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
584k
      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
308k
    case Type::DCT32X16: {
730
308k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
308k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
308k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
308k
      break;
734
0
    }
735
486k
    case Type::DCT16X32: {
736
486k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
486k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
486k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
486k
      break;
740
0
    }
741
1.07M
    case Type::DCT32X32: {
742
1.07M
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
1.07M
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
1.07M
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
1.07M
      break;
746
0
    }
747
32.6k
    case Type::DCT64X32: {
748
32.6k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
32.6k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
32.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
32.6k
      break;
752
0
    }
753
34.7k
    case Type::DCT32X64: {
754
34.7k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
34.7k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
34.7k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
34.7k
      break;
758
0
    }
759
247k
    case Type::DCT64X64: {
760
247k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
247k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
247k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
247k
      break;
764
0
    }
765
111
    case Type::DCT128X64: {
766
111
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
111
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
111
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
111
      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
45
    case Type::DCT256X256: {
799
45
      ReinterpretingDCT<
800
45
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
45
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
45
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
45
      break;
804
0
    }
805
14.1M
    case Type::DCT:
806
18.0M
    case Type::DCT2X2:
807
18.1M
    case Type::DCT4X4:
808
19.5M
    case Type::DCT4X8:
809
21.3M
    case Type::DCT8X4:
810
22.5M
    case Type::AFV0:
811
26.6M
    case Type::AFV1:
812
27.4M
    case Type::AFV2:
813
28.9M
    case Type::AFV3:
814
32.7M
    case Type::IDENTITY:
815
32.7M
      llf[0] = dc[0];
816
32.7M
      break;
817
38.4M
  };
818
38.4M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
819
820
}  // namespace
821
// NOLINTNEXTLINE(google-readability-namespace-comments)
822
}  // namespace HWY_NAMESPACE
823
}  // namespace jxl
824
HWY_AFTER_NAMESPACE();
825
826
#endif  // LIB_JXL_DEC_TRANSFORMS_INL_H_