gnu/gcc/4c136e1d333bc4cf142adbb17d644d5ded5afe63 Add vector integer support to double-conversion patterns
The following expands the double-conversion match patterns to also
cover integer vectors (it already supports float vectors), adding
required guards for supportability. I have simplified
supportable_convert_operation by eliding the useless output code
argument (it's always the same as the input code).
* match.pd ((convert (convert @0))): Allow integer vector
types, unify {inside,intrer,final}_vec, guard patterns that
are not correct for vectors and those that are with
checks the resulting conversion is supported by the target.
* optabs-tree.h (supportable_convert_operation): Remove
useless last argument.
* optabs-tree.cc (supportable_convert_operation): Likewise.
(supportable_half_widening_operation): Adjust.
* tree-vect-stmts.cc (vectorizable_conversion): Likewise.
(supportable_indirect_convert_operation): Likewise.
* tree-vect-generic.cc (expand_vector_conversion): Likewise.
* tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Likewise.
* tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
Co-Authored-By: H.J. Lu <hjl.tools@gmail.com>
7 files changed