Re: [RFC PATCH for 9] rs6000: Ordered comparisons (PR56864)

2018-03-27 Thread Segher Boessenkool
Hi again, On Tue, Mar 27, 2018 at 07:59:30PM +0200, Uros Bizjak wrote: > > (the two compares were combined, by fwprop1) but without the flag we get > > > > fcmpo 5,1,2 > > li 3,-1 > > bltlr 5 > > mfcr 3,4 > > rlwinm 3,3,22,1 > > fcmpo 7,1,2 > >

Re: [RFC PATCH for 9] rs6000: Ordered comparisons (PR56864)

2018-03-27 Thread Uros Bizjak
On Tue, Mar 27, 2018 at 7:20 PM, Segher Boessenkool wrote: > Hi! > > On Tue, Mar 27, 2018 at 09:30:35AM +0200, Uros Bizjak wrote: >> +(define_insn "*cmpdd_cmpo" >> + [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") >> + (compare:CCFP (match_operand:DD 1

Re: [RFC PATCH for 9] rs6000: Ordered comparisons (PR56864)

2018-03-27 Thread Segher Boessenkool
Hi! On Tue, Mar 27, 2018 at 09:30:35AM +0200, Uros Bizjak wrote: > +(define_insn "*cmpdd_cmpo" > + [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") > + (compare:CCFP (match_operand:DD 1 "gpc_reg_operand" "d") > + (match_operand:DD 2 "gpc_reg_operand" "d"))) > + (unspec [(match_dup 1)

Re: [RFC PATCH for 9] rs6000: Ordered comparisons (PR56864)

2018-03-27 Thread Uros Bizjak
Hello! +(define_insn "*cmpdd_cmpo" + [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") + (compare:CCFP (match_operand:DD 1 "gpc_reg_operand" "d") + (match_operand:DD 2 "gpc_reg_operand" "d"))) + (unspec [(match_dup 1) (match_dup 2)] UNSPEC_CMPO)] + "TARGET_DFP" + "dcmpo %0,%1,%2" +

[RFC PATCH for 9] rs6000: Ordered comparisons (PR56864)

2018-03-26 Thread Segher Boessenkool
This implements ordered comparisons for most floating point variants. It does not yet implement it for XL-compatible FP comparisons. I do not yet know if it works correctly for emulated 128-bit IEEE FP. There should not be performance impact, but I haven't tested it thoroughly yet. Segher