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

aarch64: Port NEON reduction intrinsics to pragma framework

NEON reduction intrinsics (vaddv, vmaxv, vminv, etc.) are now handled by GCC's pragma-based framework.

Several NEON reduction intrinsics for aarch64, including vaddv, vmaxv, vminv, vmaxnmv, and vminnmv, have been ported to GCC’s pragma-based framework. Some floating-point variants requiring special NaN handling (e.g., vmaxv_f32) were not ported in this patch due to complexities in mapping them to existing instruction patterns. The changes involve adding new function bases and groups and removing many previously defined functions from arm_neon.h.

In Details

This patch ports NEON reduction intrinsics (like vaddv, vmaxv) to the pragma-based intrinsic framework. The new intrinsic bases are defined in aarch64-neon-builtins-base.cc and .def. Floating-point reduction intrinsics with specific NaN semantics (e.g., vmaxv_f32, vminv_f64) are excluded as they require specialized <optab>_nan variants not yet available. The corresponding function definitions are removed from arm_neon.h.

For Context
NEON
An Advanced SIMD extension for ARM processors, providing accelerated xử lý of vector data.
intrinsics
Special functions that map directly to specific hardware instructions, allowing C/C++ code to leverage specialized processor capabilities.
pragma-based framework
A mechanism within GCC where compiler behavior, particularly for intrinsics, is controlled by pragmas, enabling more flexible and maintainable handling of built-in functions.
NaN
Not a Number; a special floating-point value used to represent undefined or unrepresentable results, often arising from operations like 0/0 or sqrt(-1).
Filed Under: aarch64neonintrinsicscompiler framework