Bug 1859954 - Use XP_DARWIN rather than XP_MACOS in PHC r=glandium
[gecko.git] / third_party / xsimd / Changelog.rst
blob8af4c3c623569d51572bc10963b9b297295aa8d4
1 .. Copyright (c) Serge Guelton and Johan Mabille
2    Copyright (c) QuantStack
4    Distributed under the terms of the BSD 3-Clause License.
6    The full license is in the file LICENSE, distributed with this software.
9 Changelog
10 =========
12 11.1.0
13 ------
15     * Introduce XSIMD_DEFAULT_ARCH to force default architecture (if any)
17     * Remove C++ requirement on xsimd::exp10 scalar implementation
19     * Improve and test documentation
21 11.0.0
22 ------
24     * Provide a generic reducer
26     * Fix ``find_package(xsimd)`` for xtl enabled xsimd, reloaded
28     * Cleanup benchmark code
30     * Provide avx512f implementation of FMA and variant
32     * Hexadecimal floating points are not a C++11 feature
34     * back to slow implementation of exp10 on Windows
36     * Changed bitwise_cast API
38     * Provide generic signed /unsigned type conversion
40     * Fixed sde location
42     * Feature/incr decr
44     * Cleanup documentation
46 10.0.0
47 ------
49     * Fix potential ABI issue in SVE support
51     * Disable fast exp10 on OSX
53     * Assert on unaligned memory when calling aligned load/store
55     * Fix warning about uninitialized storage
57     * Always forward arch parameter
59     * Do not specialize the behavior of ``simd_return_type`` for char
61     * Support broadcasting of complex batches
63     * Make xsimd compatible with -fno-exceptions
65     * Provide and test comparison operators overloads that accept scalars
67 9.0.1
68 -----
70     * Fix potential ABI issue in SVE support, making ``xsimd::sve`` a type alias to
71       size-dependent type.
73 9.0.0
74 -----
76     * Support fixed size SVE
78     * Fix a bug in SSSE3 ``xsimd::swizzle`` implementation for ``int8`` and ``int16``
80     * Rename ``xsimd::hadd`` into ``xsimd::reduce_add``, provide ``xsimd::reduce_min`` and ``xsimd::reduce_max``
82     * Properly report unsupported double for neon on arm32
84     * Fill holes in xsimd scalar api
86     * Fix ``find_package(xsimd)`` for xtl enabled xsimd
88     * Replace ``xsimd::bool_cast`` by ``xsimd::batch_bool_cast``
90     * Native ``xsimd::hadd`` for float on arm64
92     * Properly static_assert when trying to instantiate an ``xsimd::batch`` of xtl complex
94     * Introduce ``xsimd::batch_bool::mask()`` and ``batch_bool::from_mask(...)``
96     * Flag some function with ``[[nodiscard]]``
98     * Accept both relative and absolute libdir and include dir in xsimd.pc
100     * Implement ``xsimd::nearbyint_as_int`` for NEON
102     * Add ``xsimd::polar``
104     * Speedup double -> F32/I32 gathers
106     * Add ``xsimd::slide_left`` and ``xsimd::slide_right``
108     * Support integral ``xsimd::swizzles`` on AVX
110 8.1.0
111 -----
113     * Add ``xsimd::gather`` and ``xsimd::scatter``
115     * Add ``xsimd::nearbyint_as_int``
117     * Add ``xsimd::none``
119     * Add ``xsimd::reciprocal``
121     * Remove batch constructor from memory adress, use ``xsimd::batch<...>::load_(un)aligned`` instead
123     * Leave to msvc users the opportunity to manually disable FMA3 on AVX
125     * Provide ``xsimd::insert`` to modify a single value from a vector
127     * Make ``xsimd::pow`` implementation resilient to ``FE_INVALID``
129     * Reciprocal square root support through ``xsimd::rsqrt``
131     * NEON: Improve ``xsimd::any`` and ``xsimd::all``
133     * Provide type utility to explicitly require a batch of given size and type
135     * Implement ``xsimd::swizzle`` on x86, neon and neon64
137     * Avx support for ``xsimd::zip_lo`` and ``xsimd::zip_hi``
139     * Only use ``_mm256_unpacklo_epi<N>`` on AVX2
141     * Provide neon/neon64 conversion function from ``uint(32|64)_t`` to ``(float|double)``
143     * Provide SSE/AVX/AVX2 conversion function from ``uint32_t`` to ``float``
145     * Provide AVX2 conversion function from ``(u)int64_t`` to ``double``
147     * Provide better SSE conversion function from ``uint64_t`` to ``double``
149     * Provide better SSE conversion function to ``double``
151     * Support logical xor for ``xsimd::batch_bool``
153     * Clarify fma support:
155         - FMA3 + SSE -> ``xsimd::fma3<sse4_2>``
156         - FMA3 + AVX -> ``xsimd::fma3<avx>``
157         - FMA3 + AVX2 -> ``xsimd::fma3<avx2>``
158         - FMA4 -> ``xsimd::fma4``
160     * Allow ``xsimd::transform`` to work with complex types
162     * Add missing scalar version of ``xsimd::norm`` and ``xsimd::conj``
164 8.0.5
165 -----
167     * Fix neon ``xsimd::hadd`` implementation
169     * Detect unsupported architectures and set ``XSIMD_NO_SUPPORTED_ARCHITECTURE``
170       if needs be
172 8.0.4
173 -----
175     * Provide some conversion operators for ``float`` -> ``uint32``
177     * Improve code generated for AVX2 signed integer comparisons
179     * Enable detection of avx512cd and avx512dq, and fix avx512bw detection
181     * Enable detection of AVX2+FMA
183     * Pick the best compatible architecture in ``xsimd::dispatch``
185     * Enables support for FMA when AVX2 is detected on Windows
187     * Add missing includes / forward declaration
189     * Mark all functions inline and noexcept
191     * Assert when using incomplete ``std::initializer_list``
193 8.0.3
194 -----
196     * Improve CI & testing, no functional change
198 8.0.2
199 -----
201     * Do not use ``_mm256_srai_epi32`` under AVX, it's an AVX2 instruction
203 8.0.1
204 -----
206     * Fix invalid constexpr ``std::make_tuple`` usage in neon64