Just general comment, we do not user alternate operator spellins, so all
and/or needs to be &&/||.

On Wed, Oct 8, 2025 at 1:54 PM Matthias Kretz <[email protected]> wrote:

> This set of patches implements C++26 [simd]. The implementation differs a
> lot
> from the std::experimental implementation. I tried my best to reduce the
> number of template instantiations wrt. what std::experimental::simd does.
>
> A basic_vec/basic_mask that uses multiple registers is built as a tree of
> smaller specializations, where the left branch always stores a power-of-2
> number of elements.
>
> Still missing: [simd.loadstore], [simd.permute.dynamic],
> [simd.permute.mask],
> [simd.permute.memory].
>
> [simd.math] is partially implemented. But I don't want to go any further
> on
> this without some feedback on the direction I took.
>
> I have an extensive set of unit tests at
> https://github.com/GSI-HPC/simd/tree/
> rewrite. But I don't want to repeat what I did for
> std::experimental::simd. So
> I'll look into possibly keeping an external complete simd testsuite while
> added some tests to libstdc++ later.
>
> The PR is split into multiple commits to hopefully make it easier to get
> through the review.
>
> Matthias Kretz (11):
>   libstdc++: C++26 [simd] details
>   libstdc++: Implement C++26 [simd.iterator]
>   libstdc++: C++26 [simd] rebind, resize, permute, chunk, cat and
>     basic_mask
>   libstdc++: Implement C++26 [simd.mask.reductions]
>   libstdc++: Implement C++26 [simd.flags] and alignment(_v)
>   libstdc++: Implement C++26 [simd] basic_vec
>   libstdc++: Implement C++26 [simd.alg]
>   libstdc++: Implement C++26 [simd.bit]
>   libstdc++: Implement C++26 [simd.reductions]
>   libstdc++: Specialize basic_mask and basic_vec for complex value-types
>   libstdc++: First sketch for C++26 [simd.math]
>
>  libstdc++-v3/include/bits/simd_alg.h          |   76 +
>  libstdc++-v3/include/bits/simd_bit.h          |  156 ++
>  libstdc++-v3/include/bits/simd_complex.h      | 1342 +++++++++++
>  libstdc++-v3/include/bits/simd_details.h      | 1443 +++++++++++
>  libstdc++-v3/include/bits/simd_flags.h        |  265 ++
>  libstdc++-v3/include/bits/simd_iterator.h     |  153 ++
>  libstdc++-v3/include/bits/simd_mask.h         | 1732 ++++++++++++++
>  .../include/bits/simd_mask_reductions.h       |   94 +
>  libstdc++-v3/include/bits/simd_math.h         |  993 ++++++++
>  libstdc++-v3/include/bits/simd_reductions.h   |  112 +
>  libstdc++-v3/include/bits/simd_vec.h          | 2130 +++++++++++++++++
>  libstdc++-v3/include/bits/simd_x86.h          |  953 ++++++++
>  libstdc++-v3/include/bits/vec_ops.h           |  592 +++++
>  13 files changed, 10041 insertions(+)
>  create mode 100644 libstdc++-v3/include/bits/simd_alg.h
>  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_details.h
>  create mode 100644 libstdc++-v3/include/bits/simd_flags.h
>  create mode 100644 libstdc++-v3/include/bits/simd_iterator.h
>  create mode 100644 libstdc++-v3/include/bits/simd_mask.h
>  create mode 100644 libstdc++-v3/include/bits/simd_mask_reductions.h
>  create mode 100644 libstdc++-v3/include/bits/simd_math.h
>  create mode 100644 libstdc++-v3/include/bits/simd_reductions.h
>  create mode 100644 libstdc++-v3/include/bits/simd_vec.h
>  create mode 100644 libstdc++-v3/include/bits/simd_x86.h
>  create mode 100644 libstdc++-v3/include/bits/vec_ops.h
>
> --
> ──────────────────────────────────────────────────────────────────────────
>  Dr. Matthias Kretz                           https://mattkretz.github.io
>  GSI Helmholtz Center for Heavy Ion Research               https://gsi.de
>  std::simd
> ──────────────────────────────────────────────────────────────────────────
>
>
>
>
>

Reply via email to