Re: [PATCH rs6000]Fix PR92132

2019-11-10 Thread Kewen.Lin
Hi Segher, on 2019/11/9 上午1:36, Segher Boessenkool wrote: > Hi! > > On Fri, Nov 08, 2019 at 10:38:13AM +0800, Kewen.Lin wrote: + [(set (match_operand: 0 "vint_operand") + (match_operator 1 "comparison_operator" >>> >>> If you make an iterator for this instead, it is simpler code (you

Re: [PATCH rs6000]Fix PR92132

2019-11-08 Thread Segher Boessenkool
Hi! On Fri, Nov 08, 2019 at 10:38:13AM +0800, Kewen.Lin wrote: > >> + [(set (match_operand: 0 "vint_operand") > >> + (match_operator 1 "comparison_operator" > > > > If you make an iterator for this instead, it is simpler code (you can then > > use to do all these cases in one statement). > >

Re: [PATCH rs6000]Fix PR92132

2019-11-07 Thread Kewen.Lin
Hi Segher, on 2019/11/8 上午8:07, Segher Boessenkool wrote: > Hi! > >>> Half are pretty simple: >>> >>> lt(a,b) = gt(b,a) >>> gt(a,b) = gt(a,b) >>> eq(a,b) = eq(a,b) >>> le(a,b) = ge(b,a) >>> ge(a,b) = ge(a,b) >>> >>> ltgt(a,b) = ge(a,b) ^ ge(b,a) >>> ord(a,b) = ge(a,b) | ge(b,a) >>> >>> The other

Re: [PATCH rs6000]Fix PR92132

2019-11-07 Thread Segher Boessenkool
Hi! On Thu, Nov 07, 2019 at 06:17:53PM +0800, Kewen.Lin wrote: > on 2019/11/7 上午7:49, Segher Boessenkool wrote: > > The expander named "one_cmpl3": > > > > Erm. 2, not 3 :-) > Ah, sorry I didn't notice we have one cmpl**3** but actually for one > cmpl**2** expand, a bit surprised. Done. Thank

Re: [PATCH rs6000]Fix PR92132

2019-11-07 Thread Kewen.Lin
Hi Segher, on 2019/11/7 上午7:49, Segher Boessenkool wrote: > > The expander named "one_cmpl3": > > Erm. 2, not 3 :-) > > (define_expand "one_cmpl2" > [(set (match_operand:BOOL_128 0 "vlogical_operand") > (not:BOOL_128 (match_operand:BOOL_128 1 "vlogical_operand")))] > "" > "") >

Re: [PATCH rs6000]Fix PR92132

2019-11-06 Thread Segher Boessenkool
Hi Ke Wen, On Tue, Nov 05, 2019 at 04:35:05PM +0800, Kewen.Lin wrote: > >> ;; 128-bit one's complement > >> -(define_insn_and_split "*one_cmpl3_internal" > >> +(define_insn_and_split "one_cmpl3_internal" > > > > Instead, rename it to "one_cmpl3" and delete the define_expand that > > serves no fu

Re: [PATCH rs6000]Fix PR92132

2019-11-05 Thread Kewen.Lin
Hi Segher, Thanks for the comments! on 2019/11/2 上午7:17, Segher Boessenkool wrote: > On Tue, Oct 29, 2019 at 01:16:53PM +0800, Kewen.Lin wrote: >> (vcond_mask_): New expand. > > Say for which mode please? Like > (vcond_mask_ for VEC_I and VEC_I): New expand. > Fixed as below. >>

Re: [PATCH rs6000]Fix PR92132

2019-11-01 Thread Segher Boessenkool
On Tue, Oct 29, 2019 at 01:16:53PM +0800, Kewen.Lin wrote: > (vcond_mask_): New expand. Say for which mode please? Like (vcond_mask_ for VEC_I and VEC_I): New expand. > (vcond_mask_): Likewise. "for VEC_I and VEC_F", here, but the actual names in the pattern are for vector m

Re: [PATCH rs6000]Fix PR92132

2019-10-28 Thread Kewen.Lin
Fixed one place without consistent mode. Bootstrapped and regress testing passed on powerpc64le-linux. Thanks! Kewen --- gcc/ChangeLog 2019-10-25 Kewen Lin PR target/92132 * config/rs6000/rs6000.md (one_cmpl3_internal): Expose name. * config/rs6000/vector.md (fpcm

[PATCH rs6000]Fix PR92132

2019-10-25 Thread Kewen.Lin
Hi, To support full condition reduction vectorization, we have to define vec_cmp_* and vcond_mask_*. This patch is to add related expands. Add vector_{ungt,unge,unlt,unle} for unique vector_* interface support. Regression testing just launched. gcc/ChangeLog 2019-10-25 Kewen Lin PR