Bug 79951

Summary: ICE in extract_insn, at recog.c:2311 on ppc64le with -mno-cmpb
Product: gcc Reporter: Martin Liška <marxin>
Component: targetAssignee: Pat Haugen <pthaugen>
Status: RESOLVED FIXED    
Severity: normal CC: bill.schmidt, meissner, pthaugen
Priority: P3 Keywords: ice-on-valid-code
Version: 7.0   
Target Milestone: ---   
Host: x86_64-linux-gnu Target: ppc64le-linux-gnu
Build: Known to work:
Known to fail: 5.4.0, 6.3.0, 7.0 Last reconfirmed: 2017-03-14 00:00:00

Description Martin Liška 2017-03-07 22:29:25 UTC
Following test-case ICE with cross compiler (on x86_64-linux-gnu):

$ ppc64le-linux-gnu-gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c -mno-cmpb

/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c: In function ‘testf’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c:16:1: error: unrecognizable insn:
 TEST_FUNCTION (float, f)
 ^~~~~~~~~~~~~
(insn 13 12 14 2 (set (reg:SF 164)
        (unspec:SF [
                (reg:SF 165)
                (reg:SF 166)
            ] UNSPEC_COPYSIGN)) "/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c":16 -1
     (nil))
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c:16:1: internal compiler error: in extract_insn, at recog.c:2311
0xb08718 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
	.././../gcc/rtl-error.c:108
0xb08749 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
	.././../gcc/rtl-error.c:116
0xada041 extract_insn(rtx_insn*)
	.././../gcc/recog.c:2311
0x89dad3 instantiate_virtual_regs_in_insn
	.././../gcc/function.c:1589
0x89dad3 instantiate_virtual_regs
	.././../gcc/function.c:1957
0x89dad3 execute
	.././../gcc/function.c:2006
Comment 1 Pat Haugen 2017-03-14 18:48:28 UTC
Confirmed.

Reduced testcase.

// gcc -S -mno-cmpb test.c
float
testf (float x, float y)
{
  return __builtin_copysignf (x, y);
}
Comment 2 Pat Haugen 2017-03-17 16:43:01 UTC
Author: pthaugen
Date: Fri Mar 17 16:42:29 2017
New Revision: 246228

URL: https://gcc.gnu.org/viewcvs?rev=246228&root=gcc&view=rev
Log:
	PR target/79951
	* config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
	for VECTOR_UNIT_VSX_P (<MODE>mode) too.
	* gcc.target/powerpc/pr79951.c: New.


Added:
    trunk/gcc/testsuite/gcc.target/powerpc/pr79951.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.md
    trunk/gcc/testsuite/ChangeLog
Comment 3 Pat Haugen 2017-03-21 16:33:17 UTC
Author: pthaugen
Date: Tue Mar 21 16:32:46 2017
New Revision: 246327

URL: https://gcc.gnu.org/viewcvs?rev=246327&root=gcc&view=rev
Log:
	PR target/79951
	* config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
	for VECTOR_UNIT_VSX_P (<MODE>mode) too.
	* gcc.target/powerpc/pr79951.c: New.


Added:
    branches/gcc-6-branch/gcc/testsuite/gcc.target/powerpc/pr79951.c
Modified:
    branches/gcc-6-branch/gcc/ChangeLog
    branches/gcc-6-branch/gcc/config/rs6000/rs6000.md
    branches/gcc-6-branch/gcc/testsuite/ChangeLog
Comment 4 Pat Haugen 2017-03-21 16:37:12 UTC
Author: pthaugen
Date: Tue Mar 21 16:36:39 2017
New Revision: 246328

URL: https://gcc.gnu.org/viewcvs?rev=246328&root=gcc&view=rev
Log:
	PR target/79951
	* config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
	for VECTOR_UNIT_VSX_P (<MODE>mode) too.
	* gcc.target/powerpc/pr79951.c: New.


Added:
    branches/gcc-5-branch/gcc/testsuite/gcc.target/powerpc/pr79951.c
Modified:
    branches/gcc-5-branch/gcc/ChangeLog
    branches/gcc-5-branch/gcc/config/rs6000/rs6000.md
    branches/gcc-5-branch/gcc/testsuite/ChangeLog
Comment 5 Pat Haugen 2017-03-21 16:37:53 UTC
Fixed.