Re: [PATCH] Reduction of conditional operations for vectorization

2019-09-23 Thread Richard Biener
n in > gcc.dg/vect/fast-math-vect-call-2 because ARG is a float literal. > Regards, > Yuliang > > -Original Message- > From: Richard Biener > Sent: 20 September 2019 13:02 > To: Yuliang Wang > Cc: gcc-patches@gcc.gnu.org; nd ; Richard Sandiford > > Subject: Re: [PA

RE: [PATCH] Reduction of conditional operations for vectorization

2019-09-20 Thread Marc Glisse
On Fri, 20 Sep 2019, Yuliang Wang wrote: Hi Richard, Thanks for your comments and tips. fold_binary_op_with_conditional_arg performs the reverse transformation to this patch in certain situations: /* Transform `a + (b ? x : y)' into `b ? (a + x) : (a + y)'. ... */ static tree fold_binary_o

RE: [PATCH] Reduction of conditional operations for vectorization

2019-09-20 Thread Yuliang Wang
nd ; Richard Sandiford Subject: Re: [PATCH] Reduction of conditional operations for vectorization On Fri, Sep 20, 2019 at 10:09 AM Yuliang Wang wrote: > > Hi, > > ifcvt transforms the following conditional operation reduction pattern: > > if ( condition ) > a = a OP b; &g

Re: [PATCH] Reduction of conditional operations for vectorization

2019-09-20 Thread Richard Biener
On Fri, Sep 20, 2019 at 10:09 AM Yuliang Wang wrote: > > Hi, > > ifcvt transforms the following conditional operation reduction pattern: > > if ( condition ) > a = a OP b; > else > a = a OP c; > > Into: > > a_1 = a OP b; > a_2 = a OP c; > a = condition ? a_1 : a_2; > > Where OP i

[PATCH] Reduction of conditional operations for vectorization

2019-09-20 Thread Yuliang Wang
Hi, ifcvt transforms the following conditional operation reduction pattern: if ( condition ) a = a OP b; else a = a OP c; Into: a_1 = a OP b; a_2 = a OP c; a = condition ? a_1 : a_2; Where OP is one of { plus minus mult min max and ior eor }. This patch further optimizes the