summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-stmts.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r--gcc/tree-vect-stmts.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 89ae60243b1..bf6f7105dde 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -2208,7 +2208,10 @@ get_load_store_type (gimple *stmt, tree vectype, bool slp, bool masked_p,
cost of using elementwise accesses. This check preserves the
traditional behavior until that can be fixed. */
if (*memory_access_type == VMAT_ELEMENTWISE
- && !STMT_VINFO_STRIDED_P (stmt_info))
+ && !STMT_VINFO_STRIDED_P (stmt_info)
+ && !(stmt == GROUP_FIRST_ELEMENT (stmt_info)
+ && !GROUP_NEXT_ELEMENT (stmt_info)
+ && !pow2p_hwi (GROUP_SIZE (stmt_info))))
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,