Re: [PATCH v1 1/1] aarch64: delete vaddd_s64 and vaddd_u64 from arm_neon.h [PR126652]
Andrea Pinski <[email protected]> Wed, 5 Aug 2026 16:05:24 -0700
| Newsgroups | gmane.comp.gcc.patches |
|---|---|
| Message-ID | <CALvbMcBYuPsSFq=ZG9mnK2B=s6e1G2DtJTyXuV1K2d_tjqeQeA@mail.gmail.com> |
On Wed, Aug 5, 2026 at 9:55 AM Karl Meakin <[email protected]> wrote: > > Now that `vaddd_s64` and `vaddd_u64` are implemented in the compiler, > the definitions in arm_neon.h are unnecessary. Fix by deleting them. > > This fixes PR126652: a compiler error was triggered when `#include > <arm_neon.h>` is wrapped in an `extern "C" {}` block in C++-mode. > > PR target/126652 > > gcc/ChangeLog: > > * config/aarch64/arm_neon.h (vaddd_s64, vaddd_u64): Delete > function definitions. > > gcc/testsuite/ChangeLog: > > * g++.target/aarch64/pr126652.C: New test. Please remove the testcase since I think the testcase should be rejected. Otherwise ok. > --- > gcc/config/aarch64/arm_neon.h | 16 ---------------- > gcc/testsuite/g++.target/aarch64/pr126652.C | 11 +++++++++++ > 2 files changed, 11 insertions(+), 16 deletions(-) > create mode 100644 gcc/testsuite/g++.target/aarch64/pr126652.C > > diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h > index 101a6e52106..873a1195d3e 100644 > --- a/gcc/config/aarch64/arm_neon.h > +++ b/gcc/config/aarch64/arm_neon.h > @@ -5279,22 +5279,6 @@ vabsd_s64 (int64_t __a) > return __a < 0 ? - (uint64_t) __a : __a; > } > > -/* vadd */ > - > -__extension__ extern __inline int64_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -vaddd_s64 (int64_t __a, int64_t __b) > -{ > - return __a + __b; > -} > - > -__extension__ extern __inline uint64_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -vaddd_u64 (uint64_t __a, uint64_t __b) > -{ > - return __a + __b; > -} > - > /* vaddv */ > > __extension__ extern __inline int8_t > diff --git a/gcc/testsuite/g++.target/aarch64/pr126652.C b/gcc/testsuite/g++.target/aarch64/pr126652.C > new file mode 100644 > index 00000000000..a6916fcdcc8 > --- /dev/null > +++ b/gcc/testsuite/g++.target/aarch64/pr126652.C > @@ -0,0 +1,11 @@ > +/* { dg-do compile } */ > + > +#if defined(__cplusplus) > +extern "C" { > +#endif > + > +#include <arm_neon.h> > + > +#if defined(__cplusplus) > +} > +#endif > -- > 2.51.0 >