Re: [PATCH, rs6000] Refactor FP vector comparison operators

2019-11-24 Thread Kewen.Lin
Hi Segher, on 2019/11/23 上午12:08, Segher Boessenkool wrote: > Hi! >> 2019-11-21 Kewen Lin >> >> * config/rs6000/vector.md (vector_fp_comparison_simple): >> New code iterator. >> (vector_fp_comparison_complex): Likewise. >> (vector_ for VEC_F and >> vector_fp_comparison_s

Re: [PATCH, rs6000] Refactor FP vector comparison operators

2019-11-22 Thread Segher Boessenkool
Hi! On Thu, Nov 21, 2019 at 09:15:19PM +0800, Kewen.Lin wrote: > >> +;; code iterators and attributes for vector FP comparison operators: > >> +(define_code_iterator > >> + vector_fp_comparison_operator [lt le ne ungt unge unlt unle]) > > > > Can you change this name so it is clear it is just th

Re: [PATCH, rs6000] Refactor FP vector comparison operators

2019-11-21 Thread Kewen.Lin
Hi Segher, on 2019/11/20 下午10:06, Segher Boessenkool wrote: > Hi! > > On Wed, Nov 20, 2019 at 03:31:36PM +0800, Kewen.Lin wrote: > Yeah. Just doing can_create_pseudo in the insn condition (and in the > split condition, via &&) will work -- there just is this window of > failure you should be awa

Re: [PATCH, rs6000] Refactor FP vector comparison operators

2019-11-20 Thread Segher Boessenkool
Hi! On Wed, Nov 20, 2019 at 03:31:36PM +0800, Kewen.Lin wrote: > >> +(define_expand "vector_ge" > >> + [(set (match_operand:VEC_F 0 "vlogical_operand") > >> + (ge:VEC_F (match_operand:VEC_F 1 "vlogical_operand") > >> +(match_operand:VEC_F 2 "vlogical_operand")))] > >>"VECTOR_UNIT

Re: [PATCH, rs6000] Refactor FP vector comparison operators

2019-11-19 Thread Kewen.Lin
Hi Segher, on 2019/11/20 上午1:29, Segher Boessenkool wrote: > Hi! > > On Tue, Nov 12, 2019 at 06:41:07PM +0800, Kewen.Lin wrote: >> +;; code iterators and attributes for vector FP comparison operators: >> +(define_code_iterator vector_fp_comparison_operator [lt le ne >> +

Re: [PATCH, rs6000] Refactor FP vector comparison operators

2019-11-19 Thread Segher Boessenkool
Hi! On Tue, Nov 12, 2019 at 06:41:07PM +0800, Kewen.Lin wrote: > +;; code iterators and attributes for vector FP comparison operators: > +(define_code_iterator vector_fp_comparison_operator [lt le ne > + ungt unge unlt unle]) Let's indent that diff

Re: [PATCH, rs6000] Refactor FP vector comparison operators

2019-11-12 Thread Kewen.Lin
Hi Segher, on 2019/11/11 下午8:51, Segher Boessenkool wrote: > Hi! > >> pattern 1: >> lt(a,b) = gt(b,a) >> le(a,b) = ge(b,a) > > This is done by swap_condition normally. Nice! Done. > >> pattern 2: >> unge(a,b) = ~gt(b,a) >> unle(a,b) = ~gt(a,b) >> ne(a,b) = ~eq(a,b) >> ungt(a,b)

Re: [PATCH, rs6000] Refactor FP vector comparison operators

2019-11-11 Thread Segher Boessenkool
Hi! On Mon, Nov 11, 2019 at 03:40:51PM +0800, Kewen.Lin wrote: > This is a subsequent patch to refactor the existing float point > vector comparison operator supports. The patch to fix PR92132 > supplemented vector float point comparison by exposing the names > for unordered/ordered/uneq/ltgt and

[PATCH, rs6000] Refactor FP vector comparison operators

2019-11-10 Thread Kewen.Lin
Hi, This is a subsequent patch to refactor the existing float point vector comparison operator supports. The patch to fix PR92132 supplemented vector float point comparison by exposing the names for unordered/ordered/uneq/ltgt and adding ungt/unge/unlt/unle/ ne. As Segher pointed out, some patte