Re: Fold VEC_COND_EXPRs to IFN_COND_* where possible

2018-05-25 Thread Richard Biener
On Thu, May 24, 2018 at 2:21 PM Richard Sandiford < richard.sandif...@linaro.org> wrote: > Richard Biener writes: > >> 2018-05-24 Richard Sandiford > > > >> gcc/ > >> * doc/sourcebuild.texi (vect_double_cond_arith: Document. > >> * gimple-match.h (gimple_match_op::MAX_NUM_OPS

Re: Fold VEC_COND_EXPRs to IFN_COND_* where possible

2018-05-24 Thread Richard Sandiford
Richard Biener writes: >> 2018-05-24 Richard Sandiford > >> gcc/ >> * doc/sourcebuild.texi (vect_double_cond_arith: Document. >> * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 4. >> (gimple_match_op::gimple_match_op): Add an overload for 4 > operands. >>

Re: Fold VEC_COND_EXPRs to IFN_COND_* where possible

2018-05-24 Thread Richard Biener
On Thu, May 24, 2018 at 11:28 AM Richard Sandiford < richard.sandif...@linaro.org> wrote: > This patch adds the folds: >(vec_cond COND (foo A B) C) -> (IFN_COND_FOO COND A B C) >(vec_cond COND C (foo A B)) -> (IFN_COND_FOO (!COND) A B C) > with the usual implicit restriction that the tar

Fold VEC_COND_EXPRs to IFN_COND_* where possible

2018-05-24 Thread Richard Sandiford
This patch adds the folds: (vec_cond COND (foo A B) C) -> (IFN_COND_FOO COND A B C) (vec_cond COND C (foo A B)) -> (IFN_COND_FOO (!COND) A B C) with the usual implicit restriction that the target must support the produced IFN_COND_FOO. The results of these folds don't have identical semantic