From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7857) id C55A3385772A; Wed, 24 May 2023 11:06:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C55A3385772A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1684926410; bh=wE0lSv9G4JD87wVsCS+P+0QG8nQPDscKZKp29acCPu8=; h=From:To:Subject:Date:From; b=oTo5c4PvUMaqFVsbZx1ZceaBaLHv1a0AyPJQ9FHVxSx0UoLzrUV/5mt5yQjA0rS+t 42A28T//DH8iLM3E/YAK0mHgl284KiYCNSHq1Ib6NDA+OI2R0+n/bks7L5ybPPivnd TBsvWQmkZb1egCjBzoTGbkcwurExDoxmQticCkx8= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Matthias Kretz To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r14-1160] libstdc++: Fix SFINAE for __is_intrinsic_type on ARM X-Act-Checkin: gcc X-Git-Author: Matthias Kretz X-Git-Refname: refs/heads/master X-Git-Oldrev: b0a483b0a011f9cbc8b25053eae809c77dae2a12 X-Git-Newrev: aa8b363171a95b8f867a74f29c75f9577e9087e1 Message-Id: <20230524110650.C55A3385772A@sourceware.org> Date: Wed, 24 May 2023 11:06:50 +0000 (GMT) List-Id: https://gcc.gnu.org/g:aa8b363171a95b8f867a74f29c75f9577e9087e1 commit r14-1160-gaa8b363171a95b8f867a74f29c75f9577e9087e1 Author: Matthias Kretz Date: Wed May 24 12:50:46 2023 +0200 libstdc++: Fix SFINAE for __is_intrinsic_type on ARM On ARM NEON doesn't support double, so __is_intrinsic_type_v should say false (instead of being ill-formed). Signed-off-by: Matthias Kretz libstdc++-v3/ChangeLog: PR libstdc++/109261 * include/experimental/bits/simd.h (__intrinsic_type): Specialize __intrinsic_type and __intrinsic_type in any case, but provide the member type only with __aarch64__. Diff: --- libstdc++-v3/include/experimental/bits/simd.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/include/experimental/bits/simd.h b/libstdc++-v3/include/experimental/bits/simd.h index b0571ca26c4..d1f388310f9 100644 --- a/libstdc++-v3/include/experimental/bits/simd.h +++ b/libstdc++-v3/include/experimental/bits/simd.h @@ -2369,15 +2369,21 @@ template <> struct __intrinsic_type { using type = float32x4_t; }; -#if _GLIBCXX_SIMD_HAVE_NEON_A64 template <> struct __intrinsic_type - { using type = float64x1_t; }; + { +#if _GLIBCXX_SIMD_HAVE_NEON_A64 + using type = float64x1_t; +#endif + }; template <> struct __intrinsic_type - { using type = float64x2_t; }; + { +#if _GLIBCXX_SIMD_HAVE_NEON_A64 + using type = float64x2_t; #endif + }; #define _GLIBCXX_SIMD_ARM_INTRIN(_Bits, _Np) \ template <> \