Fixes typo in vectorizer mask conversion pattern recognition.
Corrects a type typo in vectorizer's mask conversion pattern to fix PR127116.
This commit corrects a typo in the GCC vectorizer’s pattern recognition for mask conversions. Specifically, rhs1_type was passed incorrectly to build_mask_conversion in vect_recog_mask_conversion_pattern. The change ensures the correct scalar type is used, fixing PR127116. Debugging dumps for mask precision have also been added to relevant functions.
In Details
The vect_recog_mask_conversion_pattern function in tree-vect-patterns.cc incorrectly passed rhs1_type as the scalar type argument to build_mask_conversion. This commit corrects it to pass the appropriate scalar type, resolving PR127116. Additionally, mask precision dumps were added to vect_init_pattern_stmt and append_pattern_def_seq for improved debugging.
- vectorizer
- A compiler component that automatically transforms loops and other code constructs to use SIMD (Single Instruction, Multiple Data) instructions, which can operate on multiple data elements simultaneously for improved performance.
- mask conversion
- In vectorization, this refers to operations that convert or create bitmasks, often used for selecting or manipulating elements within vector registers.
- scalar type
- The fundamental data type of a single element, as opposed to a vector type which holds multiple elements.