On Fri, Jul 08, 2016 at 12:43:35AM -0500, Segher Boessenkool wrote: > On Thu, Jul 07, 2016 at 03:42:55PM -0500, Pat Haugen wrote: > > The following patch corrects the constraint so that we only generate > > 'stxsiwx' on Power8 or later hardware. Ok for trunk after successful > > bootstrap/regtest? > > I don't really understand this. Before, it required UPPER_REGS_DF (which > seems correct), and now it requires UPPER_REGS_SF, which seems wrong.
After some discussion... Okay, so it is a bit sub-optimal, but it does work. Okay for trunk, with a comment on why it is "wu" ("because "wu" requires power8"). Thanks, Segher > > --- config/rs6000/rs6000.md (revision 238117) > > +++ config/rs6000/rs6000.md (working copy) > > @@ -5748,7 +5748,7 @@ (define_expand "lround<mode>di2" > > ; An UNSPEC is used so we don't have to support SImode in FP registers. > > (define_insn "stfiwx" > > [(set (match_operand:SI 0 "memory_operand" "=Z,Z") > > - (unspec:SI [(match_operand:DI 1 "gpc_reg_operand" "d,wv")] > > + (unspec:SI [(match_operand:DI 1 "gpc_reg_operand" "d,wu")] > > UNSPEC_STFIWX))] > > "TARGET_PPC_GFXOPT" > > "@