Do not force execution of saturation tests
Vector saturation tests now compile-only on unsupported hardware, preventing linker errors.
This commit modifies the testsuite to prevent forced execution of vector saturation tests on hardware that can compile vector code but not run it. Previously, the _BitInt availability incorrectly triggered runtime execution, leading to linker errors on embedded targets like Cortex-M3 due to mixed architecture profiles. The change allows these tests to be compiled-only when runtime execution is not possible, resolving linker issues and ensuring broader testability.
In Details
The vect.exp test selection logic was overridden by dg-do run when _BitInt was available. This commit changes the test directives to require _BitInt without forcing execution (dg-do compile). This ensures that tests compile on targets lacking runnable vector hardware (e.g., ARMv7-A NEON on Cortex-M3 with M-profile link objects) but can still be run on targets with the necessary vector capabilities, addressing linker mismatches.
- testsuite
- A collection of test cases used to verify the correctness and functionality of the compiler.
- vectorization
- An optimization technique where the compiler transforms loops and operations to process multiple data elements simultaneously using SIMD (Single Instruction, Multiple Data) instructions.
- _BitInt
- A C++ extension for arbitrary-precision integers, relevant here for certain vector operations.
- Cortex-M3
- A specific microcontroller core from ARM, part of the Cortex-M family, often used in embedded systems.
- NEON
- ARM's advanced SIMD (Single Instruction, Multiple Data) extension, providing vector processing capabilities.
- dg-do run
- A GCC test directive indicating that a test case should be compiled and then executed.
- dg-do compile
- A GCC test directive indicating that a test case should only be compiled.