re PR tree-optimization/52975 (Ofast produces not optimized code for vectorized "converted if")

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.

From-SVN: r186491
This commit is contained in:
Richard Guenther 2012-04-16 11:03:16 +00:00 committed by Richard Biener
parent 3be7407913
commit 8b7db2596e
2 changed files with 9 additions and 5 deletions

View File

@ -1,3 +1,9 @@
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

View File

@ -968,7 +968,7 @@ predicate_bbs (loop_p loop)
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),
@ -986,10 +986,8 @@ predicate_bbs (loop_p loop)
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);