GCC Newspaper
JUNE 15, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
gcc/vectorization

Disable epilogue vectorization for certain x86 shift tests.

Epilogue vectorization is temporarily disabled for specific x86 shift tests to ensure consistent pass/fail results with varying cost comparison settings.

Epilogue vectorization has been disabled for specific gcc.target/i386/shift-gf2p8affine-?.c tests. This change ensures that these tests pass consistently, regardless of the value of the ix86-vect-compare-costs parameter. This avoids failures that arise due to variations in cost estimation for epilogue vectorization.

In Details

This change addresses failures in gcc.target/i386/shift-gf2p8affine-?.c when --param ix86-vect-compare-costs is enabled. The issue stems from the cost model's evaluation of epilogue vectorization for these specific shift operations. Disabling epilogue vectorization provides a temporary workaround. The interaction between ix86_vector_costs and target-specific shift implementations requires further investigation.

For Context

Vectorization is a compiler optimization technique that converts scalar operations into vector operations. Epilogue vectorization handles the remaining elements in a loop when the number of iterations is not a multiple of the vector length. The cost comparison model in GCC estimates the cost of different vectorization strategies, including epilogue vectorization. This commit temporarily disables epilogue vectorization for certain x86 shift tests due to inconsistencies in cost estimations.

Filed Under: gccvectorizationx86testing