Hi,

All implementation headers use following header (sorry I haven't noticed
that in the first patch):
/* SPDX-License-Identifier: GPL-3.0-or-later WITH GCC-exception-3.1 */
/* Copyright © 2025 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
* Matthias Kretz <[email protected]>
*/

This does not match usual ones, as you either have FSF assignment
(that was the case for experimental SIMD), or he GNU Toolchain Authors
 (in that case DCO). What is your intent here?

Regards,
Tomasz

On Thu, Jan 22, 2026 at 12:21 PM Matthias Kretz <[email protected]> wrote:

> I updated the PR at https://forge.sourceware.org/gcc/gcc-TEST/pulls/117.
>
> I rebased onto trunk and pushed two new commits since the last review.
>
> - The first commit implements all feedback:
> https://forge.sourceware.org/gcc/
> gcc-TEST/commit/33e4ce9a141123f4904d1256935101334d923df4
> <https://forge.sourceware.org/gcc/gcc-TEST/commit/33e4ce9a141123f4904d1256935101334d923df4>
>
> - The second commit adds tests to testsuite/26_numerics/simd/: https://
> forge.sourceware.org/gcc/gcc-TEST/commit/
> 9b5e2886911eb48f80e599897628654dad3d096f
>
> - I also force-pushed an update to bits/version.h, which I forgot to
> regenerate for the commit.
>
> Since the intent for the PR is to squash all commits, I did not add a
> complete
> change log to the commit implementing feedback.
>
> I noticed that I was using 'expandtabs' for the code. However, changing
> spaces
> to tabs in the PR now would make it harder to review changes. So I'd fix
> this
> at the end, once you're happy with the code, no?
>
Makes sense.

>
> Wrt. GCC 16, I assume this is getting too late in the cycle?
>
> The tests are slightly modified from what I use in my tree. In my tree,
> however, every source file is compiled 5376 times. That's the
> cross-product of
> different -march flags, different value types, and different widths. For
> libstdc++ I instead do:
>
> template for (auto t : {char(), short(), unsigned(), 0l, 0ull,
>                         float(), double()})
>   template for (constexpr int n : {1, 3, 17})
>     // test simd::vec<decltype(t), n>
>
> That's much less coverage, but already uses a lot of / too much RAM to
> compile. For -march, it uses whatever your dejagnu board has configured.
>
> Best,
>   Matthias
>
> On Montag, 27. Oktober 2025 12:40:56 Mitteleuropäische Normalzeit Matthias
> Kretz wrote:
> > Also at https://forge.sourceware.org/gcc/gcc-TEST/pulls/117
> >
> > ------------------ 8< -----------------
> >
> > This 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.
> >
> > Missing with this commit: [simd.permute.dynamic], [simd.permute.mask],
> > [simd.permute.memory], [simd.bit], [simd.math], and everything related
> > to making complex<T> vectorizable.
> >
> > Minimal unit tests will follow. (An extensive test suite that does not
> > easily integrate with the GCC test framework already exists.)
>
>
> --
> ──────────────────────────────────────────────────────────────────────────
>  Dr. Matthias Kretz                           https://mattkretz.github.io
>  GSI Helmholtz Center for Heavy Ion Research               https://gsi.de
>  std::simd
> ──────────────────────────────────────────────────────────────────────────
>

Reply via email to