From: Matthias Kretz <m.kretz@gsi.de>
To: <gcc-patches@gcc.gnu.org>, <libstdc++@gcc.gnu.org>
Subject: [PATCH 0/7] Work on PR108030 and several simd bugfixes and testsuite improvements
Date: Wed, 15 Feb 2023 21:48:40 +0100 [thread overview]
Message-ID: <3238840.44csPzL39Z@minbar> (raw)
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
──────────────────────────────────────────────────────────────────────────
next reply other threads:[~2023-02-15 20:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-15 20:48 Matthias Kretz [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3238840.44csPzL39Z@minbar \
--to=m.kretz@gsi.de \
--cc=gcc-patches@gcc.gnu.org \
--cc=libstdc++@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).