GCC Newspaper
JULY 29, 2026
gcc-17-2325-g4302e16581b4 Proposed

gcc-17-2325-g4302e16581b4: 10 regressions on arm

A commit adding testcases for trapping math with comparisons caused regressions on ARM due to an interaction with -ffast-math.

This thread discusses 10 regressions on ARM architectures caused by commit gcc-17-2325-g4302e16581b4, which introduced test cases for trapping math operations with comparisons. Richard Biener explains that the regressions stem from an interaction between the new test cases using -ftrapping-math and the existing test suite logic, which sets -ffast-math for NEON vectorization support. This combination leads to unexpected behavior, specifically manifesting as ‘excess errors’ in test cases like vect-111.c.

In the Thread 3 participants
  1. ci_notify@linaro.org contributor

    Reports 10 regressions on armv8l-unknown-linux-gnueabihf native after commit gcc-17-2325-g4302e16581b4.

    “in armv8l-unknown-linux-gnueabihf native, after: ... Produces 10 regressions: ...”
  2. Andrea Pinski via Gcc contributor

    Identifies a specific regression (FAIL: gcc.dg/vect/vect-111.c (test for excess errors)) and notes an interaction with -ftrapping-math.

    “FAIL: gcc.dg/vect/vect-111.c (test for excess errors) Excess errors: cc1: warning: '-fassociative-math' disabled; other options take precedence”
  3. Richard Biener reviewer

    Explains the root cause: the new test cases use -ftrapping-math, which conflicts with the test suite's automatic addition of -ffast-math for NEON vectorization, leading to unexpected issues.

    “This is caused by an interaction with -ftrapping-math added by the new new testcases and this from check_vect_support_and_set_flags: ``` } elseif [is-effective-target arm_neon_ok] { eval lappend DEFAULT_VECTCFLAGS [add_options_for_arm_neon ""] # NEON does not support denormals, so is not used for vectorization by # default to avoid loss of precision. We must pass -ffa…”

Technical Tradeoffs

  • Enabling trapping math for test coverage conflicts with fast-math optimizations needed for NEON vectorization tests.
  • The interaction between flags leads to unexpected errors in the test suite, indicating a need for better flag management or test case isolation.

In Details

A commit intended to enhance vectorization test coverage by enabling trapping-math-with-comparisons has triggered regressions on ARM. The issue arises from a conflict between the test's -ftrapping-math flag and the test suite's default -ffast-math applied for NEON vectorization, leading to unexpected errors. This problem affects the gcc.dg/vect/ test suite on ARM targets.

For Context
regression
A bug introduced into a software system that causes previously working functionality to fail.
ARM
A family of reduced instruction set computing (RISC) architectures for computer processors, commonly used in mobile devices and embedded systems, as well as servers and desktops.
vect
Refers to vectorization, a compiler optimization technique that allows operations to be performed on multiple data points simultaneously, often by utilizing specialized CPU instructions.
test cases
Specific inputs and conditions designed to verify that a piece of software behaves as expected.
NEON
An advanced SIMD (Single Instruction, Multiple Data) instruction set extension for the ARM architecture, used for accelerating media and signal processing, and general-purpose SIMD programming.
-ftrapping-math
A GCC compiler flag that enables trapping for operations that can cause exceptions, such as division by zero or floating-point exceptions.
-ffast-math
A GCC compiler flag that enables optimizations for floating-point arithmetic, potentially sacrificing strict IEEE compliance for performance.
Filed Under: gccARMvectorizationtestingregression