[Bug target/79947] [6/7 Regression] ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570

2017-03-14 Thread meissner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79947

--- Comment #5 from Michael Meissner  ---
Author: meissner
Date: Wed Mar 15 00:25:10 2017
New Revision: 246150

URL: https://gcc.gnu.org/viewcvs?rev=246150&root=gcc&view=rev
Log:
[gcc]
2017-03-14  Michael Meissner  

PR target/79947
* config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
-mpowerpc-gfxopt.

[gcc/testsuite]
2017-03-14  Michael Meissner  

PR target/79947
* gcc.target/powerpc/pr79947.c: New test.


Added:
trunk/gcc/testsuite/gcc.target/powerpc/pr79947.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.h
trunk/gcc/testsuite/ChangeLog

[Bug target/79947] [6/7 Regression] ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570

2017-03-14 Thread meissner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79947

--- Comment #4 from Michael Meissner  ---
Created attachment 40976
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40976&action=edit
Proposed patch to fix the problem

The tARGET_RSQRTES macro needed a guard to require -mpowerpc-gfxopt.

[Bug target/79947] [6/7 Regression] ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570

2017-03-14 Thread meissner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79947

--- Comment #3 from Michael Meissner  ---
The problem is the -mno-powerpc-gfxopt option disables floating point
conditional moves, which is needed to use the floating point reciprocal
estimate instructions.

The macro TARGET_FRSQRTES did not have a check for GFXOPT.

[Bug target/79947] [6/7 Regression] ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570

2017-03-14 Thread meissner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79947

Michael Meissner  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-03-14
   Assignee|unassigned at gcc dot gnu.org  |meissner at gcc dot 
gnu.org
 Ever confirmed|0   |1

[Bug target/79947] [6/7 Regression] ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570

2017-03-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79947

--- Comment #2 from Martin Liška  ---
There's reduced test-case:

 /tmp/ppc-ice.c 

float a, b;
void
c ()
{
  a = __builtin_sqrtf (b);
}

$ ppc64-linux-gnu-gcc -Ofast -mno-powerpc-gfxopt -mcmpb -c ppc-ice.c --verbose
Using built-in specs.
COLLECT_GCC=ppc64-linux-gnu-gcc
Target: ppc64-linux-gnu
Configured with: ./../configure --enable-linker-build-id
--prefix=/home/marxin/BIG/buildbot/slave/gcc-master-build-ppc64/../install/gcc-6fe883d64cf228785f3d0a4e24f9138c8958c93b
--target=ppc64-linux-gnu --with-as=/usr/bin/powerpc64-suse-linux-as
--disable-bootstrap

...


/home/marxin/BIG/buildbot/slave/install/gcc-6fe883d64cf228785f3d0a4e24f9138c8958c93b/bin/../lib/gcc/ppc64-linux-gnu/7.0.1/cc1
-quiet -v -iprefix
/home/marxin/BIG/buildbot/slave/install/gcc-6fe883d64cf228785f3d0a4e24f9138c8958c93b/bin/../lib64/gcc/ppc64-linux-gnu/7.0.1/
-D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux
-Asystem=linux -Asystem=unix -Asystem=posix ppc-ice.c -quiet -dumpbase
ppc-ice.c -mno-powerpc-gfxopt -mcmpb -auxbase ppc-ice -Ofast -version -o
/tmp/ccSq65JO.s

Hope you'll reproduce it now.

[Bug target/79947] [6/7 Regression] ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570

2017-03-09 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79947

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek  ---
Can't reproduce, rs6000_emit_swsqrt isn't called in my case.

[Bug target/79947] [6/7 Regression] ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570

2017-03-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79947

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |6.4