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