GCC Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
aarch64 Performance Win

Port NEON rounding intrinsics to pragma-based framework

Integrates NEON rounding intrinsics into GCC's pragma framework, improving their management and optimization potential.

This commit ports a set of NEON rounding intrinsics, including vrnd, vrnda, vrndi, vrndm, vrndn, vrndns, vrndp, and vrndx (along with their vector variants), to the pragma-based framework on aarch64. By moving these intrinsics into this unified framework, GCC can manage their lowering and optimization more consistently. This change removes direct function definitions from arm_neon.h and introduces new function bases and definition groups in aarch64-neon-builtins-base.cc and .def, respectively. New test cases are added to verify the functionality of these ported intrinsics.

In Details

Continuing the integration of NEON intrinsics into the pragma-based framework, this patch addresses the rounding-related intrinsics (vrnd*). It defines new function bases and definition groups for these operations in aarch64-neon-builtins-base.cc and .def, respectively. The corresponding header declarations in arm_neon.h are removed, signifying that the lowering logic is now handled internally by the pragma system. This approach centralizes the implementation details and facilitates optimizations. New test cases are added to cover the various rounding modes and vector sizes for these…

For Context
NEON
ARM's Advanced SIMD extension, a set of single instruction, multiple data (SIMD) instructions used for accelerating multimedia and signal processing tasks on ARM processors.
intrinsics
Special functions that allow C/C++ code to directly access specific hardware instructions, such as those in NEON. They provide a higher-level abstraction than inline assembly but offer similar control.
pragma-based framework
An internal compiler framework that uses pragmas to define and manage the behavior and lowering of specific language constructs or intrinsic functions. It aims to centralize and simplify the compiler's handling of these features.
SIMD
Single Instruction, Multiple Data. A class of parallel computers in Flynn's taxonomy that perform the same operation on multiple data points simultaneously using a single instruction.
rounding
The process of approximating a number by another number with fewer digits or a simpler form. Floating-point operations involve various rounding modes (e.g., to nearest, zero, positive infinity, negative infinity).
Filed Under: aarch64neonintrinsicsoptimization