"invariants\n");
return false;
}
+ else if (SLP_TREE_DEF_TYPE (child) == vect_internal_def
+ && !useless_type_conversion_p (SLP_TREE_VECTYPE (slp_node),
+ SLP_TREE_VECTYPE (child)))
+ {
+ /* With bools we can have mask and non-mask precision vectors
+ or different non-mask precisions. while pattern recog is
+ supposed to guarantee consistency here, we do not have
+ pattern stmts for PHIs (PR123316).
+ Deal with that here instead of ICEing later. */
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
+ "incompatible vector type setup from "
+ "bool pattern detection\n");
+ return false;
+ }
/* Analysis for double-reduction is done on the outer
loop PHI, nested cycles have no further restrictions. */
SLP_TREE_TYPE (slp_node) = cycle_phi_info_type;