public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 0/7] Work on PR108030 and several simd bugfixes and testsuite improvements
@ 2023-02-15 20:48 Matthias Kretz
  2023-02-15 20:49 ` [PATCH 1/7] libstdc++: Ensure __builtin_constant_p isn't lost on the way Matthias Kretz
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Matthias Kretz @ 2023-02-15 20:48 UTC (permalink / raw)
  To: gcc-patches, libstdc++

As suggested in PR108030, I used __attribute__ syntax to annotate lambdas 
as always_inline. In few cases the lambda was meant to be a function 
boundary and the attribute was omitted.

PR108030 mentions a few more functions as problematic. But ideally these 
should not be inline in some fixed_size_simd cases. This needs further 
verification.

This fix is not simply an optimization. If the user hits this bug then 
using simd makes the code significantly slower than without using simd. 
That defeats the whole purpose of the type.

While doing verification I found a few more issues and implemented the use 
of PCH to speed up the test suite.

Matthias Kretz (7):
  libstdc++: Ensure __builtin_constant_p isn't lost on the way
  libstdc++: Annotate most lambdas with always_inline
  libstdc++: Document timeout and timeout-factor of simd tests
  libstdc++: Use a PCH to speed up check-simd
  libstdc++: printf format string fix in testsuite
  libstdc++: Fix incorrect __builtin_is_constant_evaluated calls
  libstdc++: Fix incorrect function call in -ffast-math optimization

 libstdc++-v3/include/experimental/bits/simd.h | 245 ++++++------
 .../include/experimental/bits/simd_builtin.h  | 351 ++++++++++--------
 .../experimental/bits/simd_converter.h        |  22 +-
 .../include/experimental/bits/simd_detail.h   |   3 +
 .../experimental/bits/simd_fixed_size.h       | 265 ++++++-------
 .../include/experimental/bits/simd_math.h     |  56 +--
 .../include/experimental/bits/simd_neon.h     |  14 +-
 .../include/experimental/bits/simd_x86.h      | 143 +++----
 .../testsuite/experimental/simd/README.md     |  10 +-
 .../experimental/simd/generate_makefile.sh    |  24 +-
 .../testsuite/experimental/simd/tests/abs.cc  |   4 +-
 .../experimental/simd/tests/algorithms.cc     |   3 +-
 .../simd/tests/bits/conversions.h             |  25 +-
 .../experimental/simd/tests/bits/main.h       |  87 +++++
 .../experimental/simd/tests/bits/make_vec.h   |  10 +
 .../simd/tests/bits/mathreference.h           |   3 +
 .../simd/tests/bits/test_values.h             |   6 +
 .../experimental/simd/tests/bits/verify.h     |  66 +---
 .../experimental/simd/tests/broadcast.cc      |   3 +-
 .../experimental/simd/tests/casts.cc          |   4 +-
 .../experimental/simd/tests/fpclassify.cc     |   4 +-
 .../experimental/simd/tests/frexp.cc          |   4 +-
 .../experimental/simd/tests/generator.cc      |   3 +-
 .../experimental/simd/tests/hypot3_fma.cc     |   4 +-
 .../simd/tests/integer_operators.cc           |   5 +-
 .../simd/tests/ldexp_scalbn_scalbln_modf.cc   |   4 +-
 .../experimental/simd/tests/loadstore.cc      |   4 +-
 .../experimental/simd/tests/logarithm.cc      |   5 +-
 .../experimental/simd/tests/mask_broadcast.cc |   3 +-
 .../simd/tests/mask_conversions.cc            |   2 +-
 .../simd/tests/mask_implicit_cvt.cc           |   3 +-
 .../experimental/simd/tests/mask_loadstore.cc |  29 +-
 .../simd/tests/mask_operator_cvt.cc           |   3 +-
 .../experimental/simd/tests/mask_operators.cc |   3 +-
 .../simd/tests/mask_reductions.cc             |  30 +-
 .../experimental/simd/tests/math_1arg.cc      |   3 +-
 .../experimental/simd/tests/math_2arg.cc      |   4 +-
 .../experimental/simd/tests/operator_cvt.cc   |   3 +-
 .../experimental/simd/tests/operators.cc      |  14 +-
 .../experimental/simd/tests/reductions.cc     |   4 +-
 .../experimental/simd/tests/remqo.cc          |   4 +-
 .../testsuite/experimental/simd/tests/simd.cc |   2 +-
 .../experimental/simd/tests/sincos.cc         |   6 +-
 .../experimental/simd/tests/split_concat.cc   |   4 +-
 .../experimental/simd/tests/splits.cc         |   2 +-
 .../experimental/simd/tests/trigonometric.cc  |   4 +-
 .../simd/tests/trunc_ceil_floor.cc            |   3 +-
 .../experimental/simd/tests/where.cc          |   4 +-
 48 files changed, 772 insertions(+), 735 deletions(-)
 create mode 100644 libstdc++-v3/testsuite/experimental/simd/tests/bits/
main.h

-- 
──────────────────────────────────────────────────────────────────────────
 Dr. Matthias Kretz                           https://mattkretz.github.io
 GSI Helmholtz Centre for Heavy Ion Research               https://gsi.de
 stdₓ::simd
──────────────────────────────────────────────────────────────────────────





^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-02-16 14:13 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-15 20:48 [PATCH 0/7] Work on PR108030 and several simd bugfixes and testsuite improvements Matthias Kretz
2023-02-15 20:49 ` [PATCH 1/7] libstdc++: Ensure __builtin_constant_p isn't lost on the way Matthias Kretz
2023-02-15 23:20   ` Jonathan Wakely
2023-02-15 20:49 ` [PATCH 2/7] libstdc++: Annotate most lambdas with always_inline Matthias Kretz
2023-02-16 14:10   ` Jonathan Wakely
2023-02-15 20:49 ` [PATCH 3/7] libstdc++: Document timeout and timeout-factor of simd tests Matthias Kretz
2023-02-15 23:17   ` Jonathan Wakely
2023-02-15 20:49 ` [PATCH 4/7] libstdc++: Use a PCH to speed up check-simd Matthias Kretz
2023-02-16 14:13   ` Jonathan Wakely
2023-02-15 20:50 ` [PATCH 5/7] libstdc++: printf format string fix in testsuite Matthias Kretz
2023-02-15 23:16   ` Jonathan Wakely
2023-02-15 20:50 ` [PATCH 6/7] libstdc++: Fix incorrect __builtin_is_constant_evaluated calls Matthias Kretz
2023-02-15 23:21   ` Jonathan Wakely
2023-02-15 20:50 ` [PATCH 7/7] libstdc++: Fix incorrect function call in -ffast-math optimization Matthias Kretz
2023-02-15 23:19   ` Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).