Hi Mike, On Mon, Jul 24, 2017 at 07:40:26PM -0400, Michael Meissner wrote: > This patch eliminates the TARGET_UPPER_REGS_{DF,SF} macros. The next patch > will eliminate TARGET_UPPER_REGS_DI. > > I had to tune the optimization that turned load into FPR register and then > move > to Altivec register (and the store equivalent) because it used > TARGET_UPPER_REGS_<MODE> to protect SFmode on power7.
> --- gcc/config/rs6000/rs6000.md (revision 250485) > +++ gcc/config/rs6000/rs6000.md (working copy) > @@ -691,7 +691,7 @@ (define_code_attr SMINMAX [(smin "SM > ;; D-form load to FPR register & move to Altivec register > ;; Move Altivec register to FPR register and store > (define_mode_iterator ALTIVEC_DFORM [DF > - SF > + (SF "TARGET_P8_VECTOR") > (DI "TARGET_POWERPC64")]) Is that this part? > --- gcc/config/rs6000/rs6000.c (revision 250485) > +++ gcc/config/rs6000/rs6000.c (working copy) > @@ -3216,22 +3216,12 @@ rs6000_init_hard_regno_mode_ok (bool glo > rs6000_constraints[RS6000_CONSTRAINT_wa] = VSX_REGS; > rs6000_constraints[RS6000_CONSTRAINT_wd] = VSX_REGS; /* V2DFmode */ > rs6000_constraints[RS6000_CONSTRAINT_wf] = VSX_REGS; /* V4SFmode */ > + rs6000_constraints[RS6000_CONSTRAINT_ws] = VSX_REGS; /* DFmode */ > + rs6000_constraints[RS6000_CONSTRAINT_wv] = ALTIVEC_REGS; /* > DFmode */ > + rs6000_constraints[RS6000_CONSTRAINT_wi] = VSX_REGS; /* DImode */ After this all is done you can probably simplify the constraints a bit. Looking forward to it :-) > --- gcc/config/rs6000/rs6000.h (revision 250485) > +++ gcc/config/rs6000/rs6000.h (working copy) > @@ -575,9 +575,11 @@ extern int rs6000_vector_align[]; > and/or SFmode could go in the traditional Altivec registers. GCC 8.x > deleted > these options. In order to simplify the code, define the options in terms > of the base option (vsx, power8-vector). */ > -#define TARGET_UPPER_REGS_DF TARGET_VSX > +#if (GCC_VERSION >= 3000) > +#pragma GCC poison TARGET_UPPER_REGS_DF TARGET_UPPER_REGS_SF > +#endif Why poison it? If someone accidentally slips in a new use it won't compile anyway. Okay for trunk with the poison removed. Thanks! Segher