On 9/9/17 3:44 AM, Andreas Schwab wrote: > On Sep 08 2017, Peter Bergner <berg...@vnet.ibm.com> wrote: > >> The following patch fixes the problem I saw on Linux and bootstraps and >> regtests >> with no regressions on LE and BE (running testsuite in both 32-bit and 64-bit >> modes). I was waiting to submit this until David had a chance to verify this >> fixes the problem on AIX. > > I've verified that this fixes the ICE.
So it seems this is only a partial fix. If I modify the test case to move the #pragma to the start of the file, we still ICE with the same error. Clearly, we're not disabling the generation of the HW sqrt in the optabs when we should. Basically, this is the opposite problem than the pr80210.c test case. Peter bergner@bns:~/gcc/BUGS/PR80210> cat no-sqrt.i #pragma GCC target "no-powerpc-gpopt" double foo (double a) { return __builtin_sqrt (a); } bergner@bns:~/gcc/BUGS/PR80210> /home/bergner/gcc/build/gcc-fsf-mainline-pr80210-64/gcc/xgcc -B/home/bergner/gcc/build/gcc-fsf-mainline-pr80210-64/gcc -O2 -S no-sqrt.i no-sqrt.i: In function ‘foo’: no-sqrt.i:6:1: error: unrecognizable insn: } ^ (insn 6 3 7 2 (set (reg:DF 121 [ <retval> ]) (sqrt:DF (reg/v:DF 122 [ a ]))) "no-sqrt.i":5 -1 (nil)) during RTL pass: vregs no-sqrt.i:6:1: internal compiler error: in extract_insn, at recog.c:2311