Coverage Report

Created: 2026-09-14 07:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libjxl/lib/jxl/base/rational_polynomial-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
// Fast SIMD evaluation of rational polynomials for approximating functions.
7
8
#if defined(LIB_JXL_BASE_RATIONAL_POLYNOMIAL_INL_H_) == \
9
    defined(HWY_TARGET_TOGGLE)
10
#ifdef LIB_JXL_BASE_RATIONAL_POLYNOMIAL_INL_H_
11
#undef LIB_JXL_BASE_RATIONAL_POLYNOMIAL_INL_H_
12
#else
13
#define LIB_JXL_BASE_RATIONAL_POLYNOMIAL_INL_H_
14
#endif
15
16
#include <jxl/types.h>
17
#include <stddef.h>
18
19
#include <hwy/highway.h>
20
HWY_BEFORE_NAMESPACE();
21
namespace jxl {
22
namespace HWY_NAMESPACE {
23
namespace {
24
25
// These templates are not found via ADL.
26
using hwy::HWY_NAMESPACE::ApproximateReciprocal;
27
using hwy::HWY_NAMESPACE::Div;
28
using hwy::HWY_NAMESPACE::MulAdd;
29
30
// Primary template: default to actual division.
31
template <typename T, class V>
32
struct FastDivision {
33
  HWY_INLINE V operator()(const V n, const V d) const { return n / d; }
34
};
35
// Partial specialization for float vectors.
36
template <class V>
37
struct FastDivision<float, V> {
38
  // One Newton-Raphson iteration.
39
  static HWY_INLINE V ReciprocalNR(const V x) {
40
    const auto rcp = ApproximateReciprocal(x);
41
    const auto sum = Add(rcp, rcp);
42
    const auto x_rcp = Mul(x, rcp);
43
    return NegMulAdd(x_rcp, rcp, sum);
44
  }
45
46
3.47G
  V operator()(const V n, const V d) const {
47
#if JXL_TRUE  // Faster on SKX
48
3.47G
    return Div(n, d);
49
#else
50
    return n * ReciprocalNR(d);
51
#endif
52
3.47G
  }
Unexecuted instantiation: quant_weights.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
quant_weights.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Line
Count
Source
46
7.22M
  V operator()(const V n, const V d) const {
47
#if JXL_TRUE  // Faster on SKX
48
7.22M
    return Div(n, d);
49
#else
50
    return n * ReciprocalNR(d);
51
#endif
52
7.22M
  }
Unexecuted instantiation: quant_weights.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: quant_weights.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: quant_weights.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
quant_weights.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Line
Count
Source
46
1.96M
  V operator()(const V n, const V d) const {
47
#if JXL_TRUE  // Faster on SKX
48
1.96M
    return Div(n, d);
49
#else
50
    return n * ReciprocalNR(d);
51
#endif
52
1.96M
  }
Unexecuted instantiation: quant_weights.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
quant_weights.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 4ul> >::operator()(hwy::N_AVX2::Vec128<float, 4ul>, hwy::N_AVX2::Vec128<float, 4ul>) const
Line
Count
Source
46
38.0M
  V operator()(const V n, const V d) const {
47
#if JXL_TRUE  // Faster on SKX
48
38.0M
    return Div(n, d);
49
#else
50
    return n * ReciprocalNR(d);
51
#endif
52
38.0M
  }
Unexecuted instantiation: quant_weights.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 4ul> >::operator()(hwy::N_AVX3::Vec128<float, 4ul>, hwy::N_AVX3::Vec128<float, 4ul>) const
Unexecuted instantiation: quant_weights.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 4ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 4ul>, hwy::N_AVX3_ZEN4::Vec128<float, 4ul>) const
Unexecuted instantiation: quant_weights.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 4ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 4ul>, hwy::N_AVX3_SPR::Vec128<float, 4ul>) const
Unexecuted instantiation: quant_weights.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: splines.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: splines.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: splines.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: splines.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: splines.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: splines.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
enc_xyb.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Line
Count
Source
46
182M
  V operator()(const V n, const V d) const {
47
#if JXL_TRUE  // Faster on SKX
48
182M
    return Div(n, d);
49
#else
50
    return n * ReciprocalNR(d);
51
#endif
52
182M
  }
Unexecuted instantiation: enc_xyb.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec512<float> >::operator()(hwy::N_AVX3::Vec512<float>, hwy::N_AVX3::Vec512<float>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec512<float> >::operator()(hwy::N_AVX3_ZEN4::Vec512<float>, hwy::N_AVX3_ZEN4::Vec512<float>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec512<float> >::operator()(hwy::N_AVX3_SPR::Vec512<float>, hwy::N_AVX3_SPR::Vec512<float>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_xyb.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
enc_ma.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Line
Count
Source
46
972M
  V operator()(const V n, const V d) const {
47
#if JXL_TRUE  // Faster on SKX
48
972M
    return Div(n, d);
49
#else
50
    return n * ReciprocalNR(d);
51
#endif
52
972M
  }
Unexecuted instantiation: enc_ma.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec512<float> >::operator()(hwy::N_AVX3::Vec512<float>, hwy::N_AVX3::Vec512<float>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec512<float> >::operator()(hwy::N_AVX3_ZEN4::Vec512<float>, hwy::N_AVX3_ZEN4::Vec512<float>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec512<float> >::operator()(hwy::N_AVX3_SPR::Vec512<float>, hwy::N_AVX3_SPR::Vec512<float>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ma.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec512<float> >::operator()(hwy::N_AVX3_SPR::Vec512<float>, hwy::N_AVX3_SPR::Vec512<float>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec512<float> >::operator()(hwy::N_AVX3_ZEN4::Vec512<float>, hwy::N_AVX3_ZEN4::Vec512<float>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec512<float> >::operator()(hwy::N_AVX3::Vec512<float>, hwy::N_AVX3::Vec512<float>) const
stage_from_linear.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Line
Count
Source
46
2.27G
  V operator()(const V n, const V d) const {
47
#if JXL_TRUE  // Faster on SKX
48
2.27G
    return Div(n, d);
49
#else
50
    return n * ReciprocalNR(d);
51
#endif
52
2.27G
  }
Unexecuted instantiation: stage_from_linear.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_from_linear.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec512<float> >::operator()(hwy::N_AVX3_SPR::Vec512<float>, hwy::N_AVX3_SPR::Vec512<float>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec512<float> >::operator()(hwy::N_AVX3_ZEN4::Vec512<float>, hwy::N_AVX3_ZEN4::Vec512<float>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec512<float> >::operator()(hwy::N_AVX3::Vec512<float>, hwy::N_AVX3::Vec512<float>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_to_linear.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec512<float> >::operator()(hwy::N_AVX3::Vec512<float>, hwy::N_AVX3::Vec512<float>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec512<float> >::operator()(hwy::N_AVX3_ZEN4::Vec512<float>, hwy::N_AVX3_ZEN4::Vec512<float>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec512<float> >::operator()(hwy::N_AVX3_SPR::Vec512<float>, hwy::N_AVX3_SPR::Vec512<float>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: stage_tone_mapping.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec512<float> >::operator()(hwy::N_AVX3::Vec512<float>, hwy::N_AVX3::Vec512<float>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec512<float> >::operator()(hwy::N_AVX3_ZEN4::Vec512<float>, hwy::N_AVX3_ZEN4::Vec512<float>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec512<float> >::operator()(hwy::N_AVX3_SPR::Vec512<float>, hwy::N_AVX3_SPR::Vec512<float>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: butteraugli.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec256<float> >::operator()(hwy::N_AVX3_SPR::Vec256<float>, hwy::N_AVX3_SPR::Vec256<float>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec256<float> >::operator()(hwy::N_AVX3_ZEN4::Vec256<float>, hwy::N_AVX3_ZEN4::Vec256<float>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec256<float> >::operator()(hwy::N_AVX3::Vec256<float>, hwy::N_AVX3::Vec256<float>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec256<float> >::operator()(hwy::N_AVX3::Vec256<float>, hwy::N_AVX3::Vec256<float>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec256<float> >::operator()(hwy::N_AVX3_ZEN4::Vec256<float>, hwy::N_AVX3_ZEN4::Vec256<float>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec256<float> >::operator()(hwy::N_AVX3_SPR::Vec256<float>, hwy::N_AVX3_SPR::Vec256<float>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_cluster.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: enc_lz77.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 4ul> >::operator()(hwy::N_SSE4::Vec128<float, 4ul>, hwy::N_SSE4::Vec128<float, 4ul>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec256<float> >::operator()(hwy::N_AVX2::Vec256<float>, hwy::N_AVX2::Vec256<float>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec512<float> >::operator()(hwy::N_AVX3::Vec512<float>, hwy::N_AVX3::Vec512<float>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec512<float> >::operator()(hwy::N_AVX3_ZEN4::Vec512<float>, hwy::N_AVX3_ZEN4::Vec512<float>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec512<float> >::operator()(hwy::N_AVX3_SPR::Vec512<float>, hwy::N_AVX3_SPR::Vec512<float>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 4ul> >::operator()(hwy::N_SSE2::Vec128<float, 4ul>, hwy::N_SSE2::Vec128<float, 4ul>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_SSE4::(anonymous namespace)::FastDivision<float, hwy::N_SSE4::Vec128<float, 1ul> >::operator()(hwy::N_SSE4::Vec128<float, 1ul>, hwy::N_SSE4::Vec128<float, 1ul>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_AVX2::(anonymous namespace)::FastDivision<float, hwy::N_AVX2::Vec128<float, 1ul> >::operator()(hwy::N_AVX2::Vec128<float, 1ul>, hwy::N_AVX2::Vec128<float, 1ul>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_AVX3::(anonymous namespace)::FastDivision<float, hwy::N_AVX3::Vec128<float, 1ul> >::operator()(hwy::N_AVX3::Vec128<float, 1ul>, hwy::N_AVX3::Vec128<float, 1ul>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_ZEN4::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_AVX3_SPR::(anonymous namespace)::FastDivision<float, hwy::N_AVX3_SPR::Vec128<float, 1ul> >::operator()(hwy::N_AVX3_SPR::Vec128<float, 1ul>, hwy::N_AVX3_SPR::Vec128<float, 1ul>) const
Unexecuted instantiation: jxl_cms.cc:jxl::N_SSE2::(anonymous namespace)::FastDivision<float, hwy::N_SSE2::Vec128<float, 1ul> >::operator()(hwy::N_SSE2::Vec128<float, 1ul>, hwy::N_SSE2::Vec128<float, 1ul>) const
53
};
54
55
// Approximates smooth functions via rational polynomials (i.e. dividing two
56
// polynomials). Evaluates polynomials via Horner's scheme, which is faster than
57
// Clenshaw recurrence for Chebyshev polynomials. LoadDup128 allows us to
58
// specify constants (replicated 4x) independently of the lane count.
59
template <size_t NP, size_t NQ, class D, class V, typename T>
60
HWY_INLINE HWY_MAYBE_UNUSED V EvalRationalPolynomial(const D d, const V x,
61
                                                     const T (&p)[NP],
62
3.47G
                                                     const T (&q)[NQ]) {
63
3.47G
  constexpr size_t kDegP = NP / 4 - 1;
64
3.47G
  constexpr size_t kDegQ = NQ / 4 - 1;
65
3.47G
  auto yp = LoadDup128(d, &p[kDegP * 4]);
66
3.47G
  auto yq = LoadDup128(d, &q[kDegQ * 4]);
67
  // We use pointer arithmetic to refer to &p[(kDegP - n) * 4] to avoid a
68
  // compiler warning that the index is out of bounds since we are already
69
  // checking that it is not out of bounds with (kDegP >= n) and the access
70
  // will be optimized away. Similarly with q and kDegQ.
71
3.47G
  HWY_FENCE;
72
3.47G
  if (kDegP >= 1) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 1) * 4)));
73
3.47G
  if (kDegQ >= 1) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 1) * 4)));
74
3.47G
  HWY_FENCE;
75
3.47G
  if (kDegP >= 2) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 2) * 4)));
76
3.47G
  if (kDegQ >= 2) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 2) * 4)));
77
3.47G
  HWY_FENCE;
78
3.47G
  if (kDegP >= 3) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 3) * 4)));
79
3.47G
  if (kDegQ >= 3) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 3) * 4)));
80
3.47G
  HWY_FENCE;
81
3.47G
  if (kDegP >= 4) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 4) * 4)));
82
3.47G
  if (kDegQ >= 4) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 4) * 4)));
83
3.47G
  HWY_FENCE;
84
3.47G
  if (kDegP >= 5) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 5) * 4)));
85
3.47G
  if (kDegQ >= 5) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 5) * 4)));
86
3.47G
  HWY_FENCE;
87
3.47G
  if (kDegP >= 6) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 6) * 4)));
88
3.47G
  if (kDegQ >= 6) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 6) * 4)));
89
3.47G
  HWY_FENCE;
90
3.47G
  if (kDegP >= 7) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 7) * 4)));
91
3.47G
  if (kDegQ >= 7) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 7) * 4)));
92
93
3.47G
  static_assert(kDegP < 8, "Polynomial degree is too high");
94
3.47G
  static_assert(kDegQ < 8, "Polynomial degree is too high");
95
96
3.47G
  return FastDivision<T, V>()(yp, yq);
97
3.47G
}
Unexecuted instantiation: quant_weights.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
quant_weights.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Line
Count
Source
62
7.22M
                                                     const T (&q)[NQ]) {
63
7.22M
  constexpr size_t kDegP = NP / 4 - 1;
64
7.22M
  constexpr size_t kDegQ = NQ / 4 - 1;
65
7.22M
  auto yp = LoadDup128(d, &p[kDegP * 4]);
66
7.22M
  auto yq = LoadDup128(d, &q[kDegQ * 4]);
67
  // We use pointer arithmetic to refer to &p[(kDegP - n) * 4] to avoid a
68
  // compiler warning that the index is out of bounds since we are already
69
  // checking that it is not out of bounds with (kDegP >= n) and the access
70
  // will be optimized away. Similarly with q and kDegQ.
71
7.22M
  HWY_FENCE;
72
7.22M
  if (kDegP >= 1) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 1) * 4)));
73
7.22M
  if (kDegQ >= 1) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 1) * 4)));
74
7.22M
  HWY_FENCE;
75
7.22M
  if (kDegP >= 2) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 2) * 4)));
76
7.22M
  if (kDegQ >= 2) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 2) * 4)));
77
7.22M
  HWY_FENCE;
78
7.22M
  if (kDegP >= 3) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 3) * 4)));
79
7.22M
  if (kDegQ >= 3) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 3) * 4)));
80
7.22M
  HWY_FENCE;
81
7.22M
  if (kDegP >= 4) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 4) * 4)));
82
7.22M
  if (kDegQ >= 4) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 4) * 4)));
83
7.22M
  HWY_FENCE;
84
7.22M
  if (kDegP >= 5) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 5) * 4)));
85
7.22M
  if (kDegQ >= 5) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 5) * 4)));
86
7.22M
  HWY_FENCE;
87
7.22M
  if (kDegP >= 6) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 6) * 4)));
88
7.22M
  if (kDegQ >= 6) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 6) * 4)));
89
7.22M
  HWY_FENCE;
90
7.22M
  if (kDegP >= 7) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 7) * 4)));
91
7.22M
  if (kDegQ >= 7) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 7) * 4)));
92
93
7.22M
  static_assert(kDegP < 8, "Polynomial degree is too high");
94
7.22M
  static_assert(kDegQ < 8, "Polynomial degree is too high");
95
96
7.22M
  return FastDivision<T, V>()(yp, yq);
97
7.22M
}
Unexecuted instantiation: quant_weights.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: quant_weights.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: quant_weights.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
quant_weights.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Line
Count
Source
62
1.96M
                                                     const T (&q)[NQ]) {
63
1.96M
  constexpr size_t kDegP = NP / 4 - 1;
64
1.96M
  constexpr size_t kDegQ = NQ / 4 - 1;
65
1.96M
  auto yp = LoadDup128(d, &p[kDegP * 4]);
66
1.96M
  auto yq = LoadDup128(d, &q[kDegQ * 4]);
67
  // We use pointer arithmetic to refer to &p[(kDegP - n) * 4] to avoid a
68
  // compiler warning that the index is out of bounds since we are already
69
  // checking that it is not out of bounds with (kDegP >= n) and the access
70
  // will be optimized away. Similarly with q and kDegQ.
71
1.96M
  HWY_FENCE;
72
1.96M
  if (kDegP >= 1) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 1) * 4)));
73
1.96M
  if (kDegQ >= 1) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 1) * 4)));
74
1.96M
  HWY_FENCE;
75
1.96M
  if (kDegP >= 2) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 2) * 4)));
76
1.96M
  if (kDegQ >= 2) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 2) * 4)));
77
1.96M
  HWY_FENCE;
78
1.96M
  if (kDegP >= 3) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 3) * 4)));
79
1.96M
  if (kDegQ >= 3) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 3) * 4)));
80
1.96M
  HWY_FENCE;
81
1.96M
  if (kDegP >= 4) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 4) * 4)));
82
1.96M
  if (kDegQ >= 4) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 4) * 4)));
83
1.96M
  HWY_FENCE;
84
1.96M
  if (kDegP >= 5) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 5) * 4)));
85
1.96M
  if (kDegQ >= 5) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 5) * 4)));
86
1.96M
  HWY_FENCE;
87
1.96M
  if (kDegP >= 6) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 6) * 4)));
88
1.96M
  if (kDegQ >= 6) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 6) * 4)));
89
1.96M
  HWY_FENCE;
90
1.96M
  if (kDegP >= 7) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 7) * 4)));
91
1.96M
  if (kDegQ >= 7) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 7) * 4)));
92
93
1.96M
  static_assert(kDegP < 8, "Polynomial degree is too high");
94
1.96M
  static_assert(kDegQ < 8, "Polynomial degree is too high");
95
96
1.96M
  return FastDivision<T, V>()(yp, yq);
97
1.96M
}
Unexecuted instantiation: quant_weights.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
quant_weights.cc:hwy::N_AVX2::Vec128<float, 4ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 4ul, 0>, hwy::N_AVX2::Vec128<float, 4ul>, float>(hwy::N_AVX2::Simd<float, 4ul, 0>, hwy::N_AVX2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Line
Count
Source
62
38.0M
                                                     const T (&q)[NQ]) {
63
38.0M
  constexpr size_t kDegP = NP / 4 - 1;
64
38.0M
  constexpr size_t kDegQ = NQ / 4 - 1;
65
38.0M
  auto yp = LoadDup128(d, &p[kDegP * 4]);
66
38.0M
  auto yq = LoadDup128(d, &q[kDegQ * 4]);
67
  // We use pointer arithmetic to refer to &p[(kDegP - n) * 4] to avoid a
68
  // compiler warning that the index is out of bounds since we are already
69
  // checking that it is not out of bounds with (kDegP >= n) and the access
70
  // will be optimized away. Similarly with q and kDegQ.
71
38.0M
  HWY_FENCE;
72
38.0M
  if (kDegP >= 1) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 1) * 4)));
73
38.0M
  if (kDegQ >= 1) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 1) * 4)));
74
38.0M
  HWY_FENCE;
75
38.0M
  if (kDegP >= 2) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 2) * 4)));
76
38.0M
  if (kDegQ >= 2) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 2) * 4)));
77
38.0M
  HWY_FENCE;
78
38.0M
  if (kDegP >= 3) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 3) * 4)));
79
38.0M
  if (kDegQ >= 3) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 3) * 4)));
80
38.0M
  HWY_FENCE;
81
38.0M
  if (kDegP >= 4) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 4) * 4)));
82
38.0M
  if (kDegQ >= 4) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 4) * 4)));
83
38.0M
  HWY_FENCE;
84
38.0M
  if (kDegP >= 5) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 5) * 4)));
85
38.0M
  if (kDegQ >= 5) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 5) * 4)));
86
38.0M
  HWY_FENCE;
87
38.0M
  if (kDegP >= 6) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 6) * 4)));
88
38.0M
  if (kDegQ >= 6) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 6) * 4)));
89
38.0M
  HWY_FENCE;
90
38.0M
  if (kDegP >= 7) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 7) * 4)));
91
38.0M
  if (kDegQ >= 7) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 7) * 4)));
92
93
38.0M
  static_assert(kDegP < 8, "Polynomial degree is too high");
94
38.0M
  static_assert(kDegQ < 8, "Polynomial degree is too high");
95
96
38.0M
  return FastDivision<T, V>()(yp, yq);
97
38.0M
}
Unexecuted instantiation: quant_weights.cc:hwy::N_AVX3::Vec128<float, 4ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 4ul, 0>, hwy::N_AVX3::Vec128<float, 4ul>, float>(hwy::N_AVX3::Simd<float, 4ul, 0>, hwy::N_AVX3::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: quant_weights.cc:hwy::N_AVX3_ZEN4::Vec128<float, 4ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 4ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 4ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 4ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: quant_weights.cc:hwy::N_AVX3_SPR::Vec128<float, 4ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 4ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 4ul>, float>(hwy::N_AVX3_SPR::Simd<float, 4ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: quant_weights.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: splines.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: splines.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: splines.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: splines.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: splines.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: splines.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
enc_xyb.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [20ul], float const (&) [20ul])
Line
Count
Source
62
182M
                                                     const T (&q)[NQ]) {
63
182M
  constexpr size_t kDegP = NP / 4 - 1;
64
182M
  constexpr size_t kDegQ = NQ / 4 - 1;
65
182M
  auto yp = LoadDup128(d, &p[kDegP * 4]);
66
182M
  auto yq = LoadDup128(d, &q[kDegQ * 4]);
67
  // We use pointer arithmetic to refer to &p[(kDegP - n) * 4] to avoid a
68
  // compiler warning that the index is out of bounds since we are already
69
  // checking that it is not out of bounds with (kDegP >= n) and the access
70
  // will be optimized away. Similarly with q and kDegQ.
71
182M
  HWY_FENCE;
72
182M
  if (kDegP >= 1) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 1) * 4)));
73
182M
  if (kDegQ >= 1) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 1) * 4)));
74
182M
  HWY_FENCE;
75
182M
  if (kDegP >= 2) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 2) * 4)));
76
182M
  if (kDegQ >= 2) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 2) * 4)));
77
182M
  HWY_FENCE;
78
182M
  if (kDegP >= 3) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 3) * 4)));
79
182M
  if (kDegQ >= 3) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 3) * 4)));
80
182M
  HWY_FENCE;
81
182M
  if (kDegP >= 4) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 4) * 4)));
82
182M
  if (kDegQ >= 4) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 4) * 4)));
83
182M
  HWY_FENCE;
84
182M
  if (kDegP >= 5) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 5) * 4)));
85
182M
  if (kDegQ >= 5) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 5) * 4)));
86
182M
  HWY_FENCE;
87
182M
  if (kDegP >= 6) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 6) * 4)));
88
182M
  if (kDegQ >= 6) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 6) * 4)));
89
182M
  HWY_FENCE;
90
182M
  if (kDegP >= 7) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 7) * 4)));
91
182M
  if (kDegQ >= 7) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 7) * 4)));
92
93
182M
  static_assert(kDegP < 8, "Polynomial degree is too high");
94
182M
  static_assert(kDegQ < 8, "Polynomial degree is too high");
95
96
182M
  return FastDivision<T, V>()(yp, yq);
97
182M
}
Unexecuted instantiation: enc_xyb.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_xyb.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
enc_ma.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Line
Count
Source
62
972M
                                                     const T (&q)[NQ]) {
63
972M
  constexpr size_t kDegP = NP / 4 - 1;
64
972M
  constexpr size_t kDegQ = NQ / 4 - 1;
65
972M
  auto yp = LoadDup128(d, &p[kDegP * 4]);
66
972M
  auto yq = LoadDup128(d, &q[kDegQ * 4]);
67
  // We use pointer arithmetic to refer to &p[(kDegP - n) * 4] to avoid a
68
  // compiler warning that the index is out of bounds since we are already
69
  // checking that it is not out of bounds with (kDegP >= n) and the access
70
  // will be optimized away. Similarly with q and kDegQ.
71
972M
  HWY_FENCE;
72
972M
  if (kDegP >= 1) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 1) * 4)));
73
972M
  if (kDegQ >= 1) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 1) * 4)));
74
972M
  HWY_FENCE;
75
972M
  if (kDegP >= 2) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 2) * 4)));
76
972M
  if (kDegQ >= 2) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 2) * 4)));
77
972M
  HWY_FENCE;
78
972M
  if (kDegP >= 3) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 3) * 4)));
79
972M
  if (kDegQ >= 3) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 3) * 4)));
80
972M
  HWY_FENCE;
81
972M
  if (kDegP >= 4) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 4) * 4)));
82
972M
  if (kDegQ >= 4) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 4) * 4)));
83
972M
  HWY_FENCE;
84
972M
  if (kDegP >= 5) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 5) * 4)));
85
972M
  if (kDegQ >= 5) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 5) * 4)));
86
972M
  HWY_FENCE;
87
972M
  if (kDegP >= 6) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 6) * 4)));
88
972M
  if (kDegQ >= 6) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 6) * 4)));
89
972M
  HWY_FENCE;
90
972M
  if (kDegP >= 7) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 7) * 4)));
91
972M
  if (kDegQ >= 7) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 7) * 4)));
92
93
972M
  static_assert(kDegP < 8, "Polynomial degree is too high");
94
972M
  static_assert(kDegQ < 8, "Polynomial degree is too high");
95
96
972M
  return FastDivision<T, V>()(yp, yq);
97
972M
}
Unexecuted instantiation: enc_ma.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ma.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
stage_from_linear.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [20ul], float const (&) [20ul])
Line
Count
Source
62
2.27G
                                                     const T (&q)[NQ]) {
63
2.27G
  constexpr size_t kDegP = NP / 4 - 1;
64
2.27G
  constexpr size_t kDegQ = NQ / 4 - 1;
65
2.27G
  auto yp = LoadDup128(d, &p[kDegP * 4]);
66
2.27G
  auto yq = LoadDup128(d, &q[kDegQ * 4]);
67
  // We use pointer arithmetic to refer to &p[(kDegP - n) * 4] to avoid a
68
  // compiler warning that the index is out of bounds since we are already
69
  // checking that it is not out of bounds with (kDegP >= n) and the access
70
  // will be optimized away. Similarly with q and kDegQ.
71
2.27G
  HWY_FENCE;
72
2.27G
  if (kDegP >= 1) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 1) * 4)));
73
2.27G
  if (kDegQ >= 1) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 1) * 4)));
74
2.27G
  HWY_FENCE;
75
2.27G
  if (kDegP >= 2) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 2) * 4)));
76
2.27G
  if (kDegQ >= 2) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 2) * 4)));
77
2.27G
  HWY_FENCE;
78
2.27G
  if (kDegP >= 3) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 3) * 4)));
79
2.27G
  if (kDegQ >= 3) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 3) * 4)));
80
2.27G
  HWY_FENCE;
81
2.27G
  if (kDegP >= 4) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 4) * 4)));
82
2.27G
  if (kDegQ >= 4) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 4) * 4)));
83
2.27G
  HWY_FENCE;
84
2.27G
  if (kDegP >= 5) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 5) * 4)));
85
2.27G
  if (kDegQ >= 5) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 5) * 4)));
86
2.27G
  HWY_FENCE;
87
2.27G
  if (kDegP >= 6) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 6) * 4)));
88
2.27G
  if (kDegQ >= 6) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 6) * 4)));
89
2.27G
  HWY_FENCE;
90
2.27G
  if (kDegP >= 7) yp = MulAdd(yp, x, LoadDup128(d, p + ((kDegP - 7) * 4)));
91
2.27G
  if (kDegQ >= 7) yq = MulAdd(yq, x, LoadDup128(d, q + ((kDegQ - 7) * 4)));
92
93
2.27G
  static_assert(kDegP < 8, "Polynomial degree is too high");
94
2.27G
  static_assert(kDegQ < 8, "Polynomial degree is too high");
95
96
2.27G
  return FastDivision<T, V>()(yp, yq);
97
2.27G
}
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_from_linear.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_to_linear.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: stage_tone_mapping.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: butteraugli.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ac_strategy.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ac_strategy.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ac_strategy.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ac_strategy.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ac_strategy.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_ac_strategy.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_AVX3_SPR::Vec256<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 8ul, 0>, hwy::N_AVX3_SPR::Vec256<float>, float>(hwy::N_AVX3_SPR::Simd<float, 8ul, 0>, hwy::N_AVX3_SPR::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_AVX3_ZEN4::Vec256<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 8ul, 0>, hwy::N_AVX3_ZEN4::Vec256<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 8ul, 0>, hwy::N_AVX3_ZEN4::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_AVX3::Vec256<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 8ul, 0>, hwy::N_AVX3::Vec256<float>, float>(hwy::N_AVX3::Simd<float, 8ul, 0>, hwy::N_AVX3::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_adaptive_quantization.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_AVX3::Vec256<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 8ul, 0>, hwy::N_AVX3::Vec256<float>, float>(hwy::N_AVX3::Simd<float, 8ul, 0>, hwy::N_AVX3::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_AVX3_ZEN4::Vec256<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 8ul, 0>, hwy::N_AVX3_ZEN4::Vec256<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 8ul, 0>, hwy::N_AVX3_ZEN4::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_AVX3_SPR::Vec256<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 8ul, 0>, hwy::N_AVX3_SPR::Vec256<float>, float>(hwy::N_AVX3_SPR::Simd<float, 8ul, 0>, hwy::N_AVX3_SPR::Vec256<float>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_cluster.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: enc_lz77.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_SSE4::Vec128<float, 4ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float>(hwy::N_SSE4::Simd<float, 4ul, 0>, hwy::N_SSE4::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_AVX2::Vec256<float> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float>(hwy::N_AVX2::Simd<float, 8ul, 0>, hwy::N_AVX2::Vec256<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_AVX3::Vec512<float> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float>(hwy::N_AVX3::Simd<float, 16ul, 0>, hwy::N_AVX3::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_AVX3_ZEN4::Vec512<float> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float>(hwy::N_AVX3_ZEN4::Simd<float, 16ul, 0>, hwy::N_AVX3_ZEN4::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_AVX3_SPR::Vec512<float> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float>(hwy::N_AVX3_SPR::Simd<float, 16ul, 0>, hwy::N_AVX3_SPR::Vec512<float>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_SSE2::Vec128<float, 4ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<20ul, 20ul, hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float>(hwy::N_SSE2::Simd<float, 4ul, 0>, hwy::N_SSE2::Vec128<float, 4ul>, float const (&) [20ul], float const (&) [20ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_SSE4::Vec128<float, 1ul> jxl::N_SSE4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float>(hwy::N_SSE4::Simd<float, 1ul, 0>, hwy::N_SSE4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_AVX2::Vec128<float, 1ul> jxl::N_AVX2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float>(hwy::N_AVX2::Simd<float, 1ul, 0>, hwy::N_AVX2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_AVX3::Vec128<float, 1ul> jxl::N_AVX3::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float>(hwy::N_AVX3::Simd<float, 1ul, 0>, hwy::N_AVX3::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_AVX3_ZEN4::Vec128<float, 1ul> jxl::N_AVX3_ZEN4::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float>(hwy::N_AVX3_ZEN4::Simd<float, 1ul, 0>, hwy::N_AVX3_ZEN4::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_AVX3_SPR::Vec128<float, 1ul> jxl::N_AVX3_SPR::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float>(hwy::N_AVX3_SPR::Simd<float, 1ul, 0>, hwy::N_AVX3_SPR::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
Unexecuted instantiation: jxl_cms.cc:hwy::N_SSE2::Vec128<float, 1ul> jxl::N_SSE2::(anonymous namespace)::EvalRationalPolynomial<12ul, 12ul, hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float>(hwy::N_SSE2::Simd<float, 1ul, 0>, hwy::N_SSE2::Vec128<float, 1ul>, float const (&) [12ul], float const (&) [12ul])
98
99
}  // namespace
100
// NOLINTNEXTLINE(google-readability-namespace-comments)
101
}  // namespace HWY_NAMESPACE
102
}  // namespace jxl
103
HWY_AFTER_NAMESPACE();
104
#endif  // LIB_JXL_BASE_RATIONAL_POLYNOMIAL_INL_H_