Bug 81375 - [6/7/8 Regression] unrecognizable insn
Summary: [6/7/8 Regression] unrecognizable insn
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 7.0
: P3 normal
Target Milestone: 5.5
Assignee: Uroš Bizjak
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-10 08:09 UTC by Martin Liška
Modified: 2017-07-14 17:29 UTC (History)
1 user (show)

See Also:
Host:
Target: x86_32
Build:
Known to work:
Known to fail:
Last reconfirmed: 2017-07-10 00:00:00


Attachments
Proposed patch (957 bytes, patch)
2017-07-10 19:44 UTC, Uroš Bizjak
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Liška 2017-07-10 08:09:03 UTC
It's a crappy scenario, but still it ICEs:

gfortran /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/vect/fast-math-vect-8.f90 -march=lakemont -mfpmath=387+sse -m32
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/vect/fast-math-vect-8.f90:60:0:

     return
 
Error: unrecognizable insn:
(insn 78 77 79 6 (set (reg:SF 102 [ _16 ])
        (div:SF (reg:SF 218)
            (reg:SF 101 [ _15 ]))) "/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/vect/fast-math-vect-8.f90":31 -1
     (nil))
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/vect/fast-math-vect-8.f90:60:0: internal compiler error: in extract_insn, at recog.c:2311

Started with r229082, before that we did:

f951: Error: bad value (lakemont) for -march= switch
f951: Warning: SSE instruction set disabled, using 387 arithmetics
Comment 1 Uroš Bizjak 2017-07-10 19:44:18 UTC
Created attachment 41710 [details]
Proposed patch

Patch in testing.
Comment 2 uros 2017-07-10 22:01:38 UTC
Author: uros
Date: Mon Jul 10 22:01:06 2017
New Revision: 250107

URL: https://gcc.gnu.org/viewcvs?rev=250107&root=gcc&view=rev
Log:
	PR target/81375
	* config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
	(rcpps): Ditto.
	(*rsqrtsf2_sse): Ditto.
	(rsqrtsf2): Ditto.
	(div<mode>3): Macroize insn from divdf3 and divsf3
	using MODEF mode iterator.

testsuite/ChangeLog:

	PR target/81375
	* gcc.target/i386/pr81375.c: New test.


Added:
    trunk/gcc/testsuite/gcc.target/i386/pr81375.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.md
    trunk/gcc/testsuite/ChangeLog
Comment 3 uros 2017-07-11 05:34:00 UTC
Author: uros
Date: Tue Jul 11 05:32:39 2017
New Revision: 250113

URL: https://gcc.gnu.org/viewcvs?rev=250113&root=gcc&view=rev
Log:
	PR target/81375
	* config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
	(rcpps): Ditto.
	(*rsqrtsf2_sse): Ditto.
	(rsqrtsf2): Ditto.
	(div<mode>3): Macroize insn from divdf3 and divsf3
	using MODEF mode iterator.

testsuite/ChangeLog:

	PR target/81375
	* gcc.target/i386/pr81375.c: New test.


Added:
    branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr81375.c
Modified:
    branches/gcc-7-branch/gcc/ChangeLog
    branches/gcc-7-branch/gcc/config/i386/i386.md
    branches/gcc-7-branch/gcc/testsuite/ChangeLog
Comment 4 uros 2017-07-14 05:36:28 UTC
Author: uros
Date: Fri Jul 14 05:30:58 2017
New Revision: 250196

URL: https://gcc.gnu.org/viewcvs?rev=250196&root=gcc&view=rev
Log:
	Backport from mainline
	2017-07-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81375
	* config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
	(rcpps): Ditto.
	(*rsqrtsf2_sse): Ditto.
	(rsqrtsf2): Ditto.
	(div<mode>3): Macroize insn from divdf3 and divsf3
	using MODEF mode iterator.

	Backport from mainline
	2017-07-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81300
	* config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
	Require dead FLAGS_REG at the beginning of a peephole.

testsuite/ChangeLog:

	Backport from mainline
	2017-07-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81375
	* gcc.target/i386/pr81375.c: New test.

	Backport from mainline
	2017-07-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81300
	* gcc.target/i386/pr81300.c: New test.


Added:
    branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr81300.c
    branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr81375.c
Modified:
    branches/gcc-6-branch/gcc/ChangeLog
    branches/gcc-6-branch/gcc/config/i386/i386.md
    branches/gcc-6-branch/gcc/testsuite/ChangeLog
Comment 5 uros 2017-07-14 17:20:03 UTC
Author: uros
Date: Fri Jul 14 17:19:30 2017
New Revision: 250211

URL: https://gcc.gnu.org/viewcvs?rev=250211&root=gcc&view=rev
Log:
	Backport from mainline
	2017-07-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81375
	* config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
	(rcpps): Ditto.
	(*rsqrtsf2_sse): Ditto.
	(rsqrtsf2): Ditto.
	(div<mode>3): Macroize insn from divdf3 and divsf3
	using MODEF mode iterator.

	Backport from mainline
	2017-07-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81300
	* config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
	Require dead FLAGS_REG at the beginning of a peephole.

testsuite/ChangeLog:

	Backport from mainline
	2017-07-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81375
	* gcc.target/i386/pr81375.c: New test.

	Backport from mainline
	2017-07-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81300
	* gcc.target/i386/pr81300.c: New test.


Added:
    branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr81300.c
    branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr81375.c
Modified:
    branches/gcc-5-branch/gcc/ChangeLog
    branches/gcc-5-branch/gcc/config/i386/i386.md
    branches/gcc-5-branch/gcc/testsuite/ChangeLog
Comment 6 Uroš Bizjak 2017-07-14 17:29:31 UTC
Fixed.