x86: Scan both round[sp][ds] and vrndscale[sp][ds] in round tests
Test suite now checks for both round and vrndscale instructions when AVX512 is enabled.
The x86 test suite was failing because it expected specific rounding instructions like ‘roundss’ but encountered ‘vrndscaless’ when AVX512 was enabled by default. This commit updates the test suite to scan for both ‘round[sp][ds]’ and ‘vrndscale[sp][ds]’ instructions. This ensures that the tests correctly identify the generated assembly regardless of which specific rounding instruction is used, preventing false positives in the test results.
In Details
When AVX512 is enabled, the compiler may generate vrndscale* instructions instead of the round* instructions. The existing test suite scans for the latter, leading to failures. This commit modifies the test scanning logic to account for both instruction sets, ensuring test accuracy across different AVX512 configurations.
- AVX512
- A set of SIMD (Single Instruction, Multiple Data) instructions for x86 processors, providing wider vector registers and new operations for enhanced performance. Enabling AVX512 can change instruction selection.
- vrndscale*
- AVX512 instructions for rounding floating-point numbers. These are newer alternatives to the older
round*instructions. - round*
- SSE4.1 instructions for rounding floating-point numbers. These were commonly used before AVX512 became widespread.
- xmm
- A 128-bit wide register used by SSE and AVX instruction sets for SIMD operations.