> From: Marc Glisse <marc.gli...@inria.fr>
> Date: Tue, 14 May 2013 13:47:23 +0200

> Here is what I tested during the night, I'll just rename the function.
> I took the chance to remove an unnecessary alternative in TRUTH_XOR_EXPR.
> 
> Passes bootstrap+testsuite on x86_64-linux-gnu.
> 
> 2013-05-14  Marc Glisse  <marc.gli...@inria.fr>
> 
> gcc/
>       * fold-const.c (fold_negate_expr): Handle vectors.
>       (fold_truth_not_expr): Make it static.
>       (fold_invert_truth): New static function.
>       (invert_truthvalue_loc): Handle vectors. Do not call
>       fold_truth_not_expr directly.
>       (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
>       <TRUTH_NOT_EXPR>: Do not cast to boolean.
>       (fold_comparison): Handle vector constants.
>       (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
>       (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
>       * tree.h (fold_truth_not_expr): Remove declaration.
> 
> gcc/testsuite/
>       * g++.dg/ext/vector22.C: New testcase.
>       * gcc.dg/binop-xor3.c: Remove xfail.

Looks like the removed xfail caused regressions for about half
of all targets; there's now PR57313 opened for this.

Maybe an rtl test like BRANCH_COSTS or rtx_cost now matters in
the decision?

brgds, H-P

Reply via email to