Hi,

On Tue, 19 Jul 2011, Richard Guenther wrote:

> *************** forward_propagate_comparison (gimple stm
> *** 1164,1170 ****
>         }
>         /* We can propagate the condition into a statement that
>        computes the logical negation of the comparison result.  */
> !       else if (gimple_assign_rhs_code (use_stmt) == TRUTH_NOT_EXPR)
>       {
>         tree type = TREE_TYPE (gimple_assign_rhs1 (stmt));
>         bool nans = HONOR_NANS (TYPE_MODE (type));
> --- 1165,1174 ----
>         }
>         /* We can propagate the condition into a statement that
>        computes the logical negation of the comparison result.  */
> !       else if ((gimple_assign_rhs_code (use_stmt) == BIT_NOT_EXPR
> !             && TYPE_PRECISION (TREE_TYPE (lhs)) == 1)
> !            || (gimple_assign_rhs_code (use_stmt) == BIT_XOR_EXPR
> !                && integer_onep (gimple_assign_rhs2 (use_stmt))))

In XOR case you want either precision==1 or integer_all_onesp (the fixed 
variant), otherwise it's no inversion.


Ciao,
Michael.

Reply via email to