aarch64: Ensure NEON builtins are C++14 compatible
Modifies nested namespace usage in AArch64 NEON builtins to be compatible with C++14 standards.
This commit addresses recent changes in the AArch64 NEON builtins that introduced nested namespace definitions requiring C++17 or later. Since GCC is expected to be buildable with C++14 compilers (like GCC 5.4), these changes caused pedantic warnings. The fix modifies the nested namespace declarations in relevant header files (aarch64-neon-builtins-base.h, aarch64-neon-builtins-shapes.h) and the source file (aarch64-neon-builtins-shapes.cc) to use the C++14 compatible syntax namespace aarch64_acle { namespace functions { ... } } instead of the C++17 namespace aarch64_acle::functions { ... }.
In Details
The AArch64 NEON builtins headers and sources were updated to use C++17-style nested namespaces (e.g., namespace aarch64_acle::functions { ... }). This caused build failures with C++14 compilers, as required for GCC's bootstrapping. The patch reverts these specific instances to use the C++14 compatible syntax of nested namespace declarations (e.g., namespace aarch64_acle { namespace functions { ... } }), aligning the code with the project's build requirements.
- aarch64
- A 64-bit ARM architecture, commonly used in mobile devices, servers, and embedded systems.
- NEON
- A widely adopted advanced SIMD (Single Instruction, Multiple Data) instruction set extension found in ARM processors. It is used for accelerating media and signal processing applications.
- builtins
- Functions or operations that are recognized and implemented directly by the compiler, often mapping to specific hardware instructions for performance. NEON builtins provide access to NEON SIMD instructions from C/C++ code.
- namespace
- A declarative region that provides a scope to the identifiers (names of types, functions, variables, etc.) inside it. Namespaces are used to organize code and prevent name collisions.
- C++14
- An ISO C++ standard released in 2014, offering various language and library enhancements over C++11.
- C++17
- An ISO C++ standard released in 2017, introducing further features and improvements to the language.