[PATCH v3 0/3] std-simd-complex
Matthias Kretz via Sourceware Forge
forge-bot+mkretz@forge-stage.sourceware.org
Tue Jun 2 10:44:50 GMT 2026
Hi gcc-patches mailing list,
Matthias Kretz via Sourceware Forge <forge-bot+mkretz@forge-stage.sourceware.org> has requested that the following forgejo pull request
be published on the mailing list.
Created on: 2026-03-21 13:52:32+00:00
Latest update: 2026-06-02 10:44:52+00:00
Changes: 25 changed files, 3601 additions, 120 deletions
Head revision: mkretz/gcc ref std-simd-complex commit b851112b9a0923bdf3706c0a5e0f20366ffcca5b
Base revision: gcc/gcc-TEST ref trunk commit 2ba702c966e3772d3d4e29e4b25beb7ef4dabf73 r17-638-g2ba702c966e377
Merge base: 2ba702c966e3772d3d4e29e4b25beb7ef4dabf73
Full diff url: https://forge.sourceware.org/gcc/gcc-TEST/pulls/145.diff
Discussion: https://forge.sourceware.org/gcc/gcc-TEST/pulls/145
Requested Reviewers:
This patch set
- refactors std::simd's ABI tags to completely drop `_ScalarAbi<N>`
- adds complex to the vectorizable types
- implements [simd.bit]
Tested on x86_64-linux-gnu, also with unix/-m32/-march=i686
Changed files:
- A: libstdc++-v3/include/bits/simd_bit.h
- A: libstdc++-v3/include/bits/simd_complex.h
- A: libstdc++-v3/include/bits/simd_math.h
- A: libstdc++-v3/testsuite/std/simd/complex_init.h
- A: libstdc++-v3/testsuite/std/simd/simd_bit.cc
- A: libstdc++-v3/testsuite/std/simd/simd_bit_expensive.cc
- M: libstdc++-v3/include/Makefile.am
- M: libstdc++-v3/include/Makefile.in
- M: libstdc++-v3/include/bits/simd_details.h
- M: libstdc++-v3/include/bits/simd_loadstore.h
- M: libstdc++-v3/include/bits/simd_mask.h
- M: libstdc++-v3/include/bits/simd_mask_reductions.h
- M: libstdc++-v3/include/bits/simd_vec.h
- M: libstdc++-v3/include/bits/simd_x86.h
- M: libstdc++-v3/include/bits/vec_ops.h
- M: libstdc++-v3/include/bits/version.def
- M: libstdc++-v3/include/bits/version.h
- M: libstdc++-v3/include/std/simd
- M: libstdc++-v3/testsuite/std/simd/arithmetic.cc
- M: libstdc++-v3/testsuite/std/simd/create_tests.h
- M: libstdc++-v3/testsuite/std/simd/mask2.cc
- M: libstdc++-v3/testsuite/std/simd/stores.cc
- M: libstdc++-v3/testsuite/std/simd/test_setup.h
- M: libstdc++-v3/testsuite/std/simd/traits_common.cc
- M: libstdc++-v3/testsuite/std/simd/traits_impl.cc
Matthias Kretz (3):
libstdc++: Refactor _ScalarAbi<N> into _Abi<N, N>
libstdc++: Add std::complex to the [simd] vectorizable types
libstdc++: Fix [simd.bit] constraints and implementation
libstdc++-v3/include/Makefile.am | 3 +
libstdc++-v3/include/Makefile.in | 3 +
libstdc++-v3/include/bits/simd_bit.h | 208 ++
libstdc++-v3/include/bits/simd_complex.h | 2321 +++++++++++++++++
libstdc++-v3/include/bits/simd_details.h | 218 +-
libstdc++-v3/include/bits/simd_loadstore.h | 4 +
libstdc++-v3/include/bits/simd_mask.h | 200 +-
.../include/bits/simd_mask_reductions.h | 2 +-
libstdc++-v3/include/bits/simd_math.h | 125 +
libstdc++-v3/include/bits/simd_vec.h | 25 +-
libstdc++-v3/include/bits/simd_x86.h | 46 +
libstdc++-v3/include/bits/vec_ops.h | 64 +-
libstdc++-v3/include/bits/version.def | 11 +
libstdc++-v3/include/bits/version.h | 9 +
libstdc++-v3/include/std/simd | 6 +
libstdc++-v3/testsuite/std/simd/arithmetic.cc | 3 +-
.../testsuite/std/simd/complex_init.h | 17 +
.../testsuite/std/simd/create_tests.h | 6 +-
libstdc++-v3/testsuite/std/simd/mask2.cc | 3 +-
libstdc++-v3/testsuite/std/simd/simd_bit.cc | 203 ++
.../testsuite/std/simd/simd_bit_expensive.cc | 7 +
libstdc++-v3/testsuite/std/simd/stores.cc | 4 +-
libstdc++-v3/testsuite/std/simd/test_setup.h | 45 +-
.../testsuite/std/simd/traits_common.cc | 129 +
.../testsuite/std/simd/traits_impl.cc | 59 +-
25 files changed, 3601 insertions(+), 120 deletions(-)
create mode 100644 libstdc++-v3/include/bits/simd_bit.h
create mode 100644 libstdc++-v3/include/bits/simd_complex.h
create mode 100644 libstdc++-v3/include/bits/simd_math.h
create mode 100644 libstdc++-v3/testsuite/std/simd/complex_init.h
create mode 100644 libstdc++-v3/testsuite/std/simd/simd_bit.cc
create mode 100644 libstdc++-v3/testsuite/std/simd/simd_bit_expensive.cc
Range-diff against v2:
1: b5bab8901212 = 1: b5bab8901212 libstdc++: Refactor _ScalarAbi<N> into _Abi<N, N>
2: db5398e40d7d = 2: db5398e40d7d libstdc++: Add std::complex to the [simd] vectorizable types
-: ------------ > 3: b851112b9a09 libstdc++: Fix [simd.bit] constraints and implementation
--
2.54.0
More information about the Libstdc++
mailing list