Use SLP_TREE_VECTYPE consistently
commit8a9e230f41eb406380ab0d9c2b73031133d54259
authorRichard Biener <rguenther@suse.de>
Wed, 17 Jun 2020 13:22:10 +0000 (17 15:22 +0200)
committerRichard Biener <rguenther@suse.de>
Wed, 17 Jun 2020 14:30:21 +0000 (17 16:30 +0200)
treec47d5a0c76c39420d9cdb189b736a66827978436
parentae2ebf011fec926e003645c33c07a03619ea216a
Use SLP_TREE_VECTYPE consistently

This assigns SLP_TREE_VECTYPE to all SLP nodes and uses it when
analyzing def operands.  It does not deal with mismatches between
SLP_TREE_VECTYPE and STMT_VINFO_VECTYPE yet - those cases are
still rejected until I get to clean up the interaction with data
reference groups.

2020-06-17  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_build_slp_tree_1): Set the passed
in *vectype parameter.
(vect_build_slp_tree_2): Set SLP_TREE_VECTYPE from what
vect_build_slp_tree_1 computed.
(vect_analyze_slp_instance): Set SLP_TREE_VECTYPE.
(vect_slp_analyze_node_operations_1): Use the SLP node vector type.
(vect_schedule_slp_instance): Likewise.
* tree-vect-stmts.c (vect_is_simple_use): Take the vector type
from SLP_TREE_VECTYPE.
gcc/tree-vect-slp.c
gcc/tree-vect-stmts.c