public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jonathan Wakely <jwakely@redhat.com>
To: Matthias Kretz <m.kretz@gsi.de>
Cc: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org
Subject: Re: [PATCH] libstdc++: Silence irrelevant warnings in <experimental/simd>
Date: Mon, 22 Apr 2024 17:06:15 +0100	[thread overview]
Message-ID: <CACb0b4kUCoi=7r0rcKWiF2U+CtyEwYzaa3a=AFY=tVg42wRnGg@mail.gmail.com> (raw)
In-Reply-To: <5859837.GXAFRqVoOG@centauriprime>

On Mon, 22 Apr 2024 at 16:30, Matthias Kretz <m.kretz@gsi.de> wrote:
>
> Tested on x86_64-linux-gnu, powerpc64le-linux-gnu, aarch64-linux-gnu, arm-
> linux-gnueabihf
>
> OK for trunk and backports?

OK, thanks


>
> ----------------------------- 8< ---------------------------------
>
>
> Avoid
> -Wnarrowing in C code;
> -Wtautological-compare in unconditional static_assert (necessary for
> faking a dependency on a template parameter)
>
> Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
>
> libstdc++-v3/ChangeLog:
>
>         * include/experimental/bits/simd.h: Ignore -Wnarrowing for
>         arm_neon.h.
>         (__int_for_sizeof): Replace tautological compare with checking
>         for invalid template parameter value.
>         * include/experimental/bits/simd_builtin.h (__extract_part):
>         Remove tautological compare by combining two static_assert.
> ---
>  libstdc++-v3/include/experimental/bits/simd.h         | 8 +++++++-
>  libstdc++-v3/include/experimental/bits/simd_builtin.h | 3 +--
>  2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/libstdc++-v3/include/experimental/bits/simd.h b/libstdc++-v3/
> include/experimental/bits/simd.h
> index 03c2e17a326..6ef9c955cfa 100644
> --- a/libstdc++-v3/include/experimental/bits/simd.h
> +++ b/libstdc++-v3/include/experimental/bits/simd.h
> @@ -44,7 +44,12 @@
>  #if _GLIBCXX_SIMD_X86INTRIN
>  #include <x86intrin.h>
>  #elif _GLIBCXX_SIMD_HAVE_NEON
> +#pragma GCC diagnostic push
> +// narrowing conversion of '__a' from 'uint64_t' {aka 'long long unsigned
> int'} to
> +//   'int64x1_t' {aka 'long long int'} [-Wnarrowing]
> +#pragma GCC diagnostic ignored "-Wnarrowing"
>  #include <arm_neon.h>
> +#pragma GCC diagnostic pop
>  #endif
>  #if _GLIBCXX_SIMD_HAVE_SVE
>  #include <arm_sve.h>
> @@ -598,6 +603,7 @@ struct __is_bitmask
>    constexpr auto
>    __int_for_sizeof()
>    {
> +    static_assert(_Bytes > 0);
>      if constexpr (_Bytes == sizeof(int))
>        return int();
>    #ifdef __clang__
> @@ -663,7 +669,7 @@ struct _Ip
>         return _Ip{};
>        }
>      else
> -      static_assert(_Bytes != _Bytes, "this should be unreachable");
> +      static_assert(_Bytes == 0, "this should be unreachable");
>    }
>  #pragma GCC diagnostic pop
>
> diff --git a/libstdc++-v3/include/experimental/bits/simd_builtin.h b/libstdc+
> +-v3/include/experimental/bits/simd_builtin.h
> index af0c4886108..49c7c7e1c70 100644
> --- a/libstdc++-v3/include/experimental/bits/simd_builtin.h
> +++ b/libstdc++-v3/include/experimental/bits/simd_builtin.h
> @@ -278,8 +278,7 @@ __extract_part(const _SimdWrapper<_Tp, _Np> __x)
>    __extract_part(const _SimdWrapper<bool, _Np> __x)
>    {
>      static_assert(_Combine == 1, "_Combine != 1 not implemented");
> -    static_assert(__have_avx512f && _Np == _Np);
> -    static_assert(_Total >= 2 && _Index + _Combine <= _Total && _Index >= 0);
> +    static_assert(__have_avx512f && _Total >= 2 && _Index + _Combine <=
> _Total && _Index >= 0);
>      return __x._M_data >> (_Index * _Np / _Total);
>    }
>
> --
> ──────────────────────────────────────────────────────────────────────────
>  Dr. Matthias Kretz                           https://mattkretz.github.io
>  GSI Helmholtz Centre for Heavy Ion Research               https://gsi.de
>  stdₓ::simd
> ──────────────────────────────────────────────────────────────────────────
>


      reply	other threads:[~2024-04-22 16:06 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-22 15:29 Matthias Kretz
2024-04-22 16:06 ` Jonathan Wakely [this message]

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='CACb0b4kUCoi=7r0rcKWiF2U+CtyEwYzaa3a=AFY=tVg42wRnGg@mail.gmail.com' \
    --to=jwakely@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=libstdc++@gcc.gnu.org \
    --cc=m.kretz@gsi.de \
    /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).