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] |
Andreas Schwab noticed that the two tests for PR 80510 failed on 32-bit systems due to long being only a 32-bit type. Yesterday, I committed this patch to disable the test for 32-bit: https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01607.html This patch implements the necessary move and peephole support for 32-bit ISA 2.05/2.06 (power7/power8) targets, so that the compiler can optimize: load FPR, <offsettable memory> move FPR, ALTIVEC move ALTIVEC, FPR store FPR, <offsettable memory> into: ADDI GPR, <offsettable address> ADDI GPR, <offsettable address> load ALTIVEC, GPR store ALTIVEC, GPR I tested it on two systems: 1) a big endian power7 system that has the 32-bit libraries installed, and 2) a little endian power8 system. On both systems, it bootstrapped and passed make check. I did verify on the power7 system that it ran the two tests for the functionality correctly. FWIW, I built two 32-bit versions of Spec 2006, using the compiler without and with the changes installed. Unlike 64-bit, I don't see any code changes as a result of this optimization, and all 30 spec benchmarks built correctly. However, the tests show that it will generate the instructions in some cases, but it is evidently not currently triggered. Can I install this into the trunk and after a burn in period, install it on the GCC 7 and GCC 6 branches (the previous patch for 64-bit is already installed on both branches)? If desired, I can make sure it gets into 6.4, or I can wait to install the patch until after 6.4 ships. [gcc] 2017-06-22 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/80510 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in 32-bit, since indexed is not valid for DImode. (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64. (define_peephole2 for Altivec d-form load): Add 32-bit support. (define_peephole2 for Altivec d-form store): Likewise. [gcc/testsuite] 2017-06-22 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/80510 * gcc.target/powerpc/pr80510-1.c: Allow test to run on 32-bit. * gcc.target/powerpc/pr80510-2.c: Likewise. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797
Attachment:
pr80510.patch04b
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |