tree-optimization/109219 - avoid looking at STMT_SLP_TYPE
authorRichard Biener <rguenther@suse.de>
Tue, 21 Mar 2023 11:49:36 +0000 (12:49 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 21 Mar 2023 13:04:31 +0000 (14:04 +0100)
commit26adc870e3675591050f37edab46850b97a3c122
treea7a7c40e519ea641bd28274957522e931b3ab36a
parent49a8bce43cdc1d1b48efa5eeb2a4097cfca1dc22
tree-optimization/109219 - avoid looking at STMT_SLP_TYPE

The following avoids looking at STMT_SLP_TYPE apart from the only
place needing it - transform and analysis of non-SLP loop stmts.
In particular it doesn't have a reliable meaning on SLP representatives
which are also passed as stmt_vinfo to vectorizable_* routines.  The
proper way to check in those is to look for the slp_node argument
instead.

PR tree-optimization/109219
* tree-vect-loop.cc (vectorizable_reduction): Check
slp_node, not STMT_SLP_TYPE.
* tree-vect-stmts.cc (vectorizable_condition): Likewise.
* tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
Remove assertion on STMT_SLP_TYPE.

* gcc.dg/torture/pr109219.c: New testcase.
gcc/testsuite/gcc.dg/torture/pr109219.c [new file with mode: 0644]
gcc/tree-vect-loop.cc
gcc/tree-vect-slp.cc
gcc/tree-vect-stmts.cc