This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Mon, Oct 14, 2013 at 08:51:15PM -0400, David Edelsohn wrote: > > [gcc] > > 2013-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> > > > > PR target/58673 > > * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only > > restrict TImode addresses to single indirect registers if both > > -mquad-memory and -mvsx-timode are used. > > (rs6000_output_move_128bit): Use quad_load_store_p to determine if > > we should emit load/store quad. Remove using %y for quad memory > > addresses. > > > > * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add > > constraints to allow load/store quad on machines where TImode is > > not allowed in VSX registers. > > > > [gcc/testsuite] > > 2013-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> > > > > PR target/58673 > > * gcc.target/powerpc/pr58673-1.c: New file to test whether > > -mquad-word + -mno-vsx-timode causes errors. > > * gcc.target/powerpc/pr58673-2.c: Likewise. > > This is okay, except: > > - [(set (match_operand:TI2 0 "nonimmediate_operand" "=Y,r,r,r") > - (match_operand:TI2 1 "input_operand" "r,Y,r,F"))] > + [(set (match_operand:TI2 0 "nonimmediate_operand" "=wQ,Y,r,r,r,r") > + (match_operand:TI2 1 "input_operand" "r,r,wQ,Y,r,F"))] > > As Ken Zadeck and Richard Sandiford noticed this morning, the "F" > constraint seems to be a cut-and-paste error because the "F" > constraint corresponds to an immediate scalar or vector float value, > which never will match TImode. Should this constraint be "n"? > > The GCC testsuite apparently is missing a test to ensure that a large > TImode immediate value can be loaded on targets that support int128_t. I changed this to use the 'n' constraint. This is the patch I committed: [gcc] 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/58673 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only restrict TImode addresses to single indirect registers if both -mquad-memory and -mvsx-timode are used. (rs6000_output_move_128bit): Use quad_load_store_p to determine if we should emit load/store quad. Remove using %y for quad memory addresses. * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add constraints to allow load/store quad on machines where TImode is not allowed in VSX registers. Use 'n' instead of 'F' constraint for TImode to load integer constants. [gcc/testsuite] 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/58673 * gcc.target/powerpc/pr58673-1.c: New file to test whether -mquad-word + -mno-vsx-timode causes errors. * gcc.target/powerpc/pr58673-2.c: Likewise. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460, USA email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797
Attachment:
pr58673.patch02b
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |