On Wed, Oct 31, 2012 at 9:24 AM, Jakub Jelinek <ja...@redhat.com> wrote: > On Tue, Oct 30, 2012 at 01:14:40PM +0100, Marc Glisse wrote: >> On Tue, 30 Oct 2012, Marek Polacek wrote: >> >> >On Tue, Oct 30, 2012 at 08:05:13AM +0100, Marc Glisse wrote: >> >>Hello, >> >> >> >>one more optimization that needed help for vectors, it crashed on >> >>(x<y)<0. Because of PR 55001, testcases are awkward to add (I could >> >>do a x86-only one if needed). >> >> >> >>bootstrap+testsuite. >> >> >> >>2012-10-30 Marc Glisse <marc.gli...@inria.fr> >> >> >> >> * fold-const.c (fold_binary_op_with_conditional_arg): Handle vectors. >> >> (fold_binary_loc): call it for VEC_COND_EXPR. > > Capital C instead of lowercase. > >> > >> >Patch missing? >> >> Indeed, thanks for the notice. > > This regressed > FAIL: g++.dg/other/vector-compare.C (internal compiler error) > FAIL: g++.dg/other/vector-compare.C (test for excess errors) > on i686-linux. The problem is that tree-vect-generic.c doesn't expand > BLKmode VEC_COND_EXPR piecewise. So, either fold-const on this optimization > needs to test whether expand_vec_cond_expr_p is true for the chosen > pair of comparison type and operand type, or tree-vect-generic.c needs to be > tought to expand VEC_COND_EXPR piecewise if expand_vec_cond_expr_p is not > true for the particular VEC_COND_EXPR.
The latter (tree-vect-generic.c needs to expand it). Richard. > Jakub