On Tue, Apr 12, 2016 at 3:11 PM, Michael Meissner <meiss...@linux.vnet.ibm.com> wrote: > After I moved the patches for the 70381 to my internal branch for GCC 7.0 > submissions, I noticed test float128-1.c was failing. I tracked it down to the > fact that the pre-gcc7 branch defaults to using LRA on by default instead of > reload. > > I tracked this down to using a "=" constraint on an input argument. LRA > deletes > the insns that setup the input argument, since it believed it was an output > only argument: > > (define_insn "*ieee_128bit_vsx_neg<mode>2_internal" > [(set (match_operand:IEEE128 0 "register_operand" "=wa") > (neg:IEEE128 (match_operand:IEEE128 1 "register_operand" "wa"))) > (use (match_operand:V16QI 2 "register_operand" "=v"))] > "TARGET_FLOAT128 && !TARGET_FLOAT128_HW" > "xxlxor %x0,%x1,%x2" > [(set_attr "type" "vecsimple")]) > > I have checked this by bootstrapping and doing a make check. There were no > regressions. Is it ok to check into the trunk? > > [gcc] > 2016-04-12 Michael Meissner <meiss...@linux.vnet.ibm.com> > > PR target/70680 > * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal): > Do not use "=" constraint on an input constraint. > (ieee_128bit_vsx_abs<mode>2_internal): Likewise. > (ieee_128bit_vsx_nabs<mode>2_internal): Likewise. > (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it > generates (neg (abs ...)) instead of (abs ...). > > [gcc/testsuite] > 2016-04-12 Michael Meissner <meiss...@linux.vnet.ibm.com> > > PR target/70680 > * gcc.target/powerpc/pr70640.c: New test.
Okay. Thanks, David