x86 testsuite: Prefer 512b vectors for Cascadelake tuning
Vector tests on x86 now prefer 512-bit vectors when tuning for Cascadelake.
Several vectorization tests for the x86 architecture have been updated to explicitly prefer 512-bit vectors when the target is tuned for Cascadelake. These tests previously assumed that 512-bit vectors would be the default choice, but Cascadelake tuning prioritizes 256-bit vectors. By setting a preference for 512-bit vectors, these tests now function correctly and validate the intended behavior for wider vector operations on this architecture.
In Details
This commit modifies numerous gcc.dg/vect and gcc.target/i386 test cases to include -march=cascadelake -mtune=cascadelake and then explicitly prefer 512-bit vectors. The underlying issue is that the Cascadelake microarchitecture, while supporting AVX-512, often prefers 256-bit operations for certain workloads due to latency or other considerations. The affected tests, however, were designed assuming 512-bit vectors would be selected by default for AVX-512 capable targets, leading to failures when compiled with Cascadelake tuning. The fix ensures that the tests correctly align with the i…
- x86
- A widely used family of instruction set architectures, originally developed by Intel, forming the basis of most personal computers and many servers.
- vector tests
- Test cases within the GCC testsuite designed to verify the correctness and performance of the vectorization optimizations.
- Cascadelake
- A microarchitecture for Intel processors, which supports AVX-512 instructions and has specific tuning characteristics.
- AVX-512
- Advanced Vector Extensions 512-bit, an instruction set extension for x86 processors that enables SIMD operations on 512-bit registers.
- tuning
- The process of optimizing code generation for a specific processor microarchitecture or model.