if (TREE_CODE (init_expr) == INTEGER_CST)
init_expr = fold_convert (TREE_TYPE (vectype), init_expr);
- else
- gcc_assert (tree_nop_conversion_p (TREE_TYPE (vectype),
- TREE_TYPE (init_expr)));
+ else if (!tree_nop_conversion_p (TREE_TYPE (vectype), TREE_TYPE (init_expr)))
+ {
+ /* INIT_EXPR could be a bit_field, bail out for such case. */
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
+ "nonlinear induction vectorization failed:"
+ " component type of vectype is not a nop conversion"
+ " from type of init_expr.\n");
+ return false;
+ }
switch (induction_type)
{