diff options
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r-- | gcc/tree-vect-stmts.c | 5 |
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, |