diff mbox series

tree-optimization/115597 - allow CSE of two-operator VEC_PERM nodes

Message ID 20240623094010.1138B13AC1@imap1.dmz-prg2.suse.org
State New
Headers show
Series tree-optimization/115597 - allow CSE of two-operator VEC_PERM nodes | expand

Commit Message

Richard Biener June 23, 2024, 9:40 a.m. UTC
The following makes sure to always CSE when there's SLP_TREE_SCALAR_STMTS
as otherwise a chain of two-operator node operations can result in
exponential behavior of the CSE process as likely seen when building
510.parest on aarch64.

Bootstrap and regtest running on x86_64-unknown-linux-gnu.

	PR tree-optimization/115597
	* tree-vect-slp.cc (vect_cse_slp_nodes): Allow to CSE
	VEC_PERM nodes.
---
 gcc/tree-vect-slp.cc | 1 -
 1 file changed, 1 deletion(-)
diff mbox series

Patch

diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
index 9465d94de1a..212d5f97f7d 100644
--- a/gcc/tree-vect-slp.cc
+++ b/gcc/tree-vect-slp.cc
@@ -6085,7 +6085,6 @@  static void
 vect_cse_slp_nodes (scalar_stmts_to_slp_tree_map_t *bst_map, slp_tree& node)
 {
   if (SLP_TREE_DEF_TYPE (node) == vect_internal_def
-      && SLP_TREE_CODE (node) != VEC_PERM_EXPR
       /* Besides some VEC_PERM_EXPR, two-operator nodes also
 	 lack scalar stmts and thus CSE doesn't work via bst_map.  Ideally
 	 we'd have sth that works for all internal and external nodes.  */