public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
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
──────────────────────────────────────────────────────────────────────────





             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).