On Monday, 22 May 2023 18:25:15 CEST Jonathan Wakely wrote: > I note that using if (not __builtin_constant_evaluated()) will fail if > compiled with -fno-operator-names, which is why we don't use 'not', 'and', > etc. elsewhere in libstdc++. I don't know if (or why) anybody uses that > option though, so I don't think you need to hange anything in stdx::simd.
Ah, I just recently convinced myself that "operator-names" are more readable (=> easier to maintain). But OTOH a mix isn't necessarily better. I'm fine with keeping it consistent. > > * subscripting vector builtins is not allowed in constant expressions > > Is that just because nobody made it work (yet)? That is a good question. I guess I should open a PR. > * if the implementation needs/uses memcpy > > > * if the implementation would otherwise call SIMD intrinsics/builtins > > The indentation looks off here and in the _M_set member function following > it: Yes. I had to put an #if between an else and an if. Looks like this: else #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS if (not __builtin_is_constant_evaluated()) return reinterpret_cast<const __may_alias<_Tp>*>(this)[__i]; else #endif if constexpr (__is_scalar_abi<_Abi0>()) Should the `if` be aligned to the `else` instead? > Are the copyright years on > testsuite/experimental/simd/pr109261_constexpr_simd.cc correct, or just > copy&paste? Right, copy&paste. Should I simply remove the complete header? - Matthias -- ────────────────────────────────────────────────────────────────────────── Dr. Matthias Kretz https://mattkretz.github.io GSI Helmholtz Centre for Heavy Ion Research https://gsi.de stdₓ::simd ──────────────────────────────────────────────────────────────────────────