forked from mirrors/gecko-dev
Bug 1885877 - Update xsimd to new version 7080469620c2145fbedf4ef8950406066e1ca2d6. r=sergesanspaille
Differential Revision: https://phabricator.services.mozilla.com/D205059
This commit is contained in:
parent
80c78a9a95
commit
1c0e289f7d
32 changed files with 10 additions and 64 deletions
|
|
@ -33,7 +33,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return false; }
|
||||
static constexpr bool available() noexcept { return false; }
|
||||
static constexpr unsigned version() noexcept { return 0; }
|
||||
static constexpr std::size_t alignment() noexcept { return 0; }
|
||||
static constexpr bool requires_alignment() noexcept { return false; }
|
||||
static constexpr char const* name() noexcept { return "<none>"; }
|
||||
|
|
@ -57,26 +56,6 @@ namespace xsimd
|
|||
{
|
||||
};
|
||||
|
||||
template <unsigned... Vals>
|
||||
struct is_sorted;
|
||||
|
||||
template <>
|
||||
struct is_sorted<> : std::true_type
|
||||
{
|
||||
};
|
||||
|
||||
template <unsigned Val>
|
||||
struct is_sorted<Val> : std::true_type
|
||||
{
|
||||
};
|
||||
|
||||
template <unsigned V0, unsigned V1, unsigned... Vals>
|
||||
struct is_sorted<V0, V1, Vals...>
|
||||
: std::conditional<(V0 >= V1), is_sorted<V1, Vals...>,
|
||||
std::false_type>::type
|
||||
{
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
inline constexpr T max_of(T value) noexcept
|
||||
{
|
||||
|
|
@ -106,15 +85,10 @@ namespace xsimd
|
|||
|
||||
} // namespace detail
|
||||
|
||||
// An arch_list is a list of architectures, sorted by version number.
|
||||
// An arch_list is a list of architectures.
|
||||
template <class... Archs>
|
||||
struct arch_list
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
static_assert(detail::is_sorted<Archs::version()...>::value,
|
||||
"architecture list must be sorted by version");
|
||||
#endif
|
||||
|
||||
using best = typename detail::head<Archs...>::type;
|
||||
|
||||
template <class Arch>
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX2; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(2, 2, 0); }
|
||||
static constexpr char const* name() noexcept { return "avx2"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512BW; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 4, 0); }
|
||||
static constexpr char const* name() noexcept { return "avx512bw"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512CD; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 2, 0); }
|
||||
static constexpr char const* name() noexcept { return "avx512cd"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512DQ; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 3, 0); }
|
||||
static constexpr char const* name() noexcept { return "avx512dq"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512ER; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 3, 1); }
|
||||
static constexpr char const* name() noexcept { return "avx512er"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512F; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 1, 0); }
|
||||
static constexpr std::size_t alignment() noexcept { return 64; }
|
||||
static constexpr bool requires_alignment() noexcept { return true; }
|
||||
static constexpr char const* name() noexcept { return "avx512f"; }
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512IFMA; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 5, 0); }
|
||||
static constexpr char const* name() noexcept { return "avx512ifma"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512PF; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 4, 1); }
|
||||
static constexpr char const* name() noexcept { return "avx512pf"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512VBMI; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 6, 0); }
|
||||
static constexpr char const* name() noexcept { return "avx512vbmi"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512VNNI_AVX512BW; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 4, 1); }
|
||||
static constexpr char const* name() noexcept { return "avx512vnni+avx512bw"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX512VNNI_AVX512VBMI; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(3, 6, 1); }
|
||||
static constexpr char const* name() noexcept { return "avx512vnni+avx512vbmi"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVX; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(2, 1, 0); }
|
||||
static constexpr std::size_t alignment() noexcept { return 32; }
|
||||
static constexpr bool requires_alignment() noexcept { return true; }
|
||||
static constexpr char const* name() noexcept { return "avx"; }
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_AVXVNNI; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(2, 3, 0); }
|
||||
static constexpr char const* name() noexcept { return "avxvnni"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1347,8 +1347,8 @@ namespace xsimd
|
|||
template <class T, class A>
|
||||
inline batch<std::complex<T>, A>& batch<std::complex<T>, A>::operator*=(batch const& other) noexcept
|
||||
{
|
||||
real_batch new_real = real() * other.real() - imag() * other.imag();
|
||||
real_batch new_imag = real() * other.imag() + imag() * other.real();
|
||||
real_batch new_real = fms(real(), other.real(), imag() * other.imag());
|
||||
real_batch new_imag = fma(real(), other.imag(), imag() * other.real());
|
||||
m_real = new_real;
|
||||
m_imag = new_imag;
|
||||
return *this;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_AVX2; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(2, 2, 1); }
|
||||
static constexpr char const* name() noexcept { return "fma3+avx2"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_AVX; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(2, 1, 1); }
|
||||
static constexpr char const* name() noexcept { return "fma3+avx"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_SSE; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(1, 4, 3); }
|
||||
static constexpr char const* name() noexcept { return "fma3+sse4.2"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_FMA4; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(1, 4, 4); }
|
||||
static constexpr char const* name() noexcept { return "fma4"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -35,13 +35,8 @@ namespace xsimd
|
|||
static constexpr std::size_t alignment() noexcept { return 0; }
|
||||
/// Whether this architecture requires aligned memory access.
|
||||
static constexpr bool requires_alignment() noexcept { return false; }
|
||||
/// Unique identifier for this architecture.
|
||||
static constexpr unsigned version() noexcept { return generic::version(0, 0, 0); }
|
||||
/// Name of the architecture.
|
||||
static constexpr char const* name() noexcept { return "generic"; }
|
||||
|
||||
protected:
|
||||
static constexpr unsigned version(unsigned major, unsigned minor, unsigned patch, unsigned multiplier = 100u) noexcept { return major * multiplier * multiplier + minor * multiplier + patch; }
|
||||
};
|
||||
|
||||
struct unsupported
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_I8MM_NEON64; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(8, 2, 0); }
|
||||
static constexpr char const* name() noexcept { return "i8mm+neon64"; }
|
||||
};
|
||||
|
||||
|
|
@ -39,6 +38,11 @@ namespace xsimd
|
|||
|
||||
XSIMD_DECLARE_SIMD_REGISTER_ALIAS(i8mm<neon64>, neon64);
|
||||
|
||||
template <class T>
|
||||
struct get_bool_simd_register<T, i8mm<neon64>>
|
||||
: detail::neon_bool_simd_register<T, i8mm<neon64>>
|
||||
{
|
||||
};
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ namespace xsimd
|
|||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr bool requires_alignment() noexcept { return true; }
|
||||
static constexpr std::size_t alignment() noexcept { return 16; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(8, 1, 0); }
|
||||
static constexpr char const* name() noexcept { return "arm64+neon"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ namespace xsimd
|
|||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr bool requires_alignment() noexcept { return true; }
|
||||
static constexpr std::size_t alignment() noexcept { return 16; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(7, 0, 0); }
|
||||
static constexpr char const* name() noexcept { return "arm32+neon"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ namespace xsimd
|
|||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr bool requires_alignment() noexcept { return true; }
|
||||
static constexpr std::size_t alignment() noexcept { return 16; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(1, 0, 0, /*multiplier=*/1000); }
|
||||
static constexpr char const* name() noexcept { return "riscv+rvv"; }
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ namespace xsimd
|
|||
static constexpr bool supported() noexcept { return XSIMD_WITH_SSE2; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr bool requires_alignment() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(1, 2, 0); }
|
||||
static constexpr std::size_t alignment() noexcept { return 16; }
|
||||
static constexpr char const* name() noexcept { return "sse2"; }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_SSE3; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(1, 3, 0); }
|
||||
static constexpr char const* name() noexcept { return "sse3"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_SSE4_1; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(1, 4, 1); }
|
||||
static constexpr char const* name() noexcept { return "sse4.1"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_SSE4_2; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(1, 4, 2); }
|
||||
static constexpr char const* name() noexcept { return "sse4.2"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ namespace xsimd
|
|||
{
|
||||
static constexpr bool supported() noexcept { return XSIMD_WITH_SSSE3; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(1, 3, 1); }
|
||||
static constexpr char const* name() noexcept { return "ssse3"; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ namespace xsimd
|
|||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr bool requires_alignment() noexcept { return true; }
|
||||
static constexpr std::size_t alignment() noexcept { return 16; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(9, Width / 32, 0); }
|
||||
static constexpr char const* name() noexcept { return "arm64+sve"; }
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ namespace xsimd
|
|||
static constexpr bool supported() noexcept { return XSIMD_WITH_WASM; }
|
||||
static constexpr bool available() noexcept { return true; }
|
||||
static constexpr bool requires_alignment() noexcept { return true; }
|
||||
static constexpr unsigned version() noexcept { return generic::version(10, 0, 0); }
|
||||
static constexpr std::size_t alignment() noexcept { return 16; }
|
||||
static constexpr char const* name() noexcept { return "wasm"; }
|
||||
};
|
||||
|
|
|
|||
4
third_party/xsimd/moz.yaml
vendored
4
third_party/xsimd/moz.yaml
vendored
|
|
@ -10,8 +10,8 @@ origin:
|
|||
|
||||
url: https://github.com/QuantStack/xsimd
|
||||
|
||||
release: ce58d62666c315140eb54042498d93114edbaa68 (2024-02-27T16:05:37Z).
|
||||
revision: ce58d62666c315140eb54042498d93114edbaa68
|
||||
release: 7080469620c2145fbedf4ef8950406066e1ca2d6 (2024-03-17T21:35:00Z).
|
||||
revision: 7080469620c2145fbedf4ef8950406066e1ca2d6
|
||||
|
||||
license: BSD-3-Clause
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue