+2012-04-16 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/52975
+ * tree-if-conv.c (predicate_bbs): Do not simplify inverted
+ condition but always mark it with TRUTH_NOT_EXPR.
+
2012-04-16 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52975
case GIMPLE_COND:
{
- tree c2, tem;
+ tree c2;
edge true_edge, false_edge;
location_t loc = gimple_location (stmt);
tree c = fold_build2_loc (loc, gimple_cond_code (stmt),
unshare_expr (c));
/* If C is false, then FALSE_EDGE is taken. */
- c2 = invert_truthvalue_loc (loc, unshare_expr (c));
- tem = canonicalize_cond_expr_cond (c2);
- if (tem)
- c2 = tem;
+ c2 = build1_loc (loc, TRUTH_NOT_EXPR,
+ boolean_type_node, unshare_expr (c));
add_to_dst_predicate_list (loop, false_edge,
unshare_expr (cond), c2);