===================================================================
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+
+typedef signed long int32_t;
+typedef char int8_t;
+
+void f0a(int32_t * result, int32_t * arg1, int8_t * arg2, int32_t temp_3)
+{
+ int idx;
+ for (idx=0;idx<10;idx += 1)
+ {
+ int32_t temp_4;
+ int32_t temp_12;
+
+ temp_4 = (-2 & arg2[idx]) + temp_3;
+ temp_12 = -2 * arg2[idx] + temp_4;
+ result[idx] = temp_12;
+ }
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
===================================================================
@@ -388,6 +388,7 @@ vect_handle_widen_mult_by_const (gimple stmt, tree
|| TREE_TYPE (gimple_assign_lhs (new_stmt)) != new_type)
return false;
+ VEC_safe_push (gimple, heap, *stmts, def_stmt);
*oprnd = gimple_assign_lhs (new_stmt);
}
else
@@ -1424,8 +1425,6 @@ vect_pattern_recog_1 (vect_recog_func_ptr vect_rec
{
/* No need to check target support (already checked by the pattern
recognition function). */
- if (type_out)
- gcc_assert (VECTOR_MODE_P (TYPE_MODE (type_out)));
pattern_vectype = type_out ? type_out : type_in;
}
else