Vector integer support added to double-conversion patterns.
GCC now supports vector integer types in double-conversion patterns.
GCC’s double-conversion patterns have been expanded to support integer vectors, in addition to existing float vector support. This change simplifies the supportable_convert_operation by removing an unused argument and adds necessary guards to ensure correct pattern matching for vector types.
In Details
This commit enhances the pattern matching for conversions within GCC's vectorization component. It extends the convert operation to handle integer vector types, unifying internal vector representations and adding target-specific checks for supported conversions. The supportable_convert_operation function in optabs-tree.h and its callers are simplified by removing a redundant output code argument.
- vector types
- Data types that represent multiple values of the same base type, operated on in parallel by SIMD (Single Instruction, Multiple Data) instructions. Compilers use them for performance optimizations on suitable hardware.
- double-conversion
- A process of converting numerical values between different representations, often involving floating-point and integer types, or different precision levels. In GCC, specific patterns in
match.pdhandle these conversions efficiently. - optabs
- Optimization tables that store information about available machine instructions and their behavior, used by GCC to select optimal code sequences.