https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127673
Bug ID: 127673
Summary: [17 Regression] Recent IVOPTS work causing testsuite
regresion on armv7
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: law at gcc dot gnu.org
Target Milestone: ---
Target: arm-linux-gnueabihf. Given these are scan failures, more likely than
not you can trigger with a cross compiler.
Tests that now fail, but worked before (2 tests):
gcc: gcc.target/arm/mve/dlstp-invalid-asm.c scan-assembler-not \tdlstp
gcc: gcc.target/arm/mve/dlstp-invalid-asm.c scan-assembler-not \tletp
This was tracked down to:
commit eb311f861255ae1fcaafa3454d4d1d6f1da07497
Author: liuhongt <[email protected]>
Date: Tue Aug 4 01:55:18 2026 -0700
tree-optimization/126486 - fold sign-changing conversions in IVOPTS
r15-6657 canonicalized signed arithmetic to unsigned and exposed a
17.5% code-size regression at -O2 in SPEC CPU2017 507.cactuBSSN_r.
The resulting conversion chains hide common outer-loop IV terms from
affine decomposition.
Enable ranger during IVOPTS and pass the use statement to tree-affine.
Use contextual ranges to remove value-preserving sign changes and fold
modular arithmetic into exact arithmetic. Keep candidate computations
context-free because they may be emitted in the loop preheader.
It may ultimately be a case where we just need to adjust the test, or it may be
a symptom of a bigger problem. I haven't done any analysis, just bisection.