Bug 37191 - [4.3 Regression] ICE in inline_secondary_memory_needed, at config/i386/i386.c:21849
Summary: [4.3 Regression] ICE in inline_secondary_memory_needed, at config/i386/i386.c...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.3.1
: P2 normal
Target Milestone: 4.3.3
Assignee: Uroš Bizjak
URL: http://gcc.gnu.org/ml/gcc-patches/200...
Keywords: patch
Depends on:
Blocks:
 
Reported: 2008-08-21 14:31 UTC by Pawel Sikora
Modified: 2011-10-27 06:17 UTC (History)
1 user (show)

See Also:
Host:
Target: i686-gnu-linux
Build:
Known to work: 4.4.0
Known to fail:
Last reconfirmed: 2008-08-22 12:40:55


Attachments
testcase (78.70 KB, application/octet-stream)
2008-08-21 14:31 UTC, Pawel Sikora
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pawel Sikora 2008-08-21 14:31:11 UTC
$ gcc dsputil_mmx.i -c -mmmx -O1

i386/h264dsp_mmx.c: In function ‘h264_h_loop_filter_chroma_intra_mmx2’:
i386/h264dsp_mmx.c:542: internal compiler error: in inline_secondary_memory_needed, at config/i386/i386.c:21849
Comment 1 Pawel Sikora 2008-08-21 14:31:31 UTC
Created attachment 16120 [details]
testcase
Comment 2 Uroš Bizjak 2008-08-22 12:40:54 UTC
Confirmed on 4.3, latent on 4.4.

Patch in testing.
Comment 3 uros 2008-08-22 14:00:18 UTC
Subject: Bug 37191

Author: uros
Date: Fri Aug 22 13:58:52 2008
New Revision: 139471

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139471
Log:
        PR target/37184
        * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
        CCCmode, CCOmode and CCSmode destination modes.

        PR target/37191
        * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
        from different units in a single alternative.
        (*vec_extractv2sf_1): Ditto.
        (*vec_extractv2si_0): Ditto.
        (*vec_extractv2si_1): Ditto.
        * config/i386/sse.md (sse2_storehpd): Ditto.
        (sse2_storelpd): Ditto.
        (sse2_loadhpd): Ditto.
        (sse2_loadlpd): Ditto.

        PR target/37197
        * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
        (popcountsi2): Ditto.
        (clzdi2_abm): Ditto.
        (popcountdi2): Ditto.
        (clzhi2_abm): Ditto.
        (popcounthi2): Ditto.

testsuite/ChangeLog:

        PR target/37184
        * gcc.target/i386/pr37184.c: New test.

        PR target/37191
        * gcc.target/i386/pr37191.c: New test.

        PR target/37197
        * gcc.target/i386/pr37197.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr37184.c
    trunk/gcc/testsuite/gcc.target/i386/pr37191.c
    trunk/gcc/testsuite/gcc.target/i386/pr37197.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/i386/i386.md
    trunk/gcc/config/i386/mmx.md
    trunk/gcc/config/i386/sse.md
    trunk/gcc/testsuite/ChangeLog

Comment 4 Uroš Bizjak 2008-08-22 14:03:18 UTC
Fixed for 4.4.
Comment 5 Pawel Sikora 2008-08-28 08:24:22 UTC
(In reply to comment #4)
> Fixed for 4.4.
> 

the 4.3.2 was released. could you commit fix to 4.3 branch?
Comment 6 uros 2008-08-28 13:32:42 UTC
Subject: Bug 37191

Author: uros
Date: Thu Aug 28 13:31:33 2008
New Revision: 139707

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139707
Log:
	PR target/37184
	* config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
	CCCmode, CCOmode and CCSmode destination modes.

	PR target/37191
	* config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
	from different units in a single alternative.
	(*vec_extractv2sf_1): Ditto.
	(*vec_extractv2si_0): Ditto.
	(*vec_extractv2si_1): Ditto.
	* config/i386/sse.md (sse2_storehpd): Ditto.
	(sse2_storelpd): Ditto.
	(sse2_loadhpd): Ditto.
	(sse2_loadlpd): Ditto.

	PR target/37197
	* config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
	(popcountsi2): Ditto.
	(clzdi2_abm): Ditto.
	(popcountdi2): Ditto.
	(clzhi2_abm): Ditto.
	(popcounthi2): Ditto.

testsuite/ChangeLog:

	PR target/37184
	* gcc.target/i386/pr37184.c: New test.

	PR target/37191
	* gcc.target/i386/pr37191.c: New test.

	PR target/37197
	* gcc.target/i386/pr37197.c: New test.


Added:
    branches/gcc-4_3-branch/gcc/testsuite/gcc.target/i386/pr37184.c
      - copied unchanged from r139471, trunk/gcc/testsuite/gcc.target/i386/pr37184.c
    branches/gcc-4_3-branch/gcc/testsuite/gcc.target/i386/pr37191.c
      - copied unchanged from r139471, trunk/gcc/testsuite/gcc.target/i386/pr37191.c
    branches/gcc-4_3-branch/gcc/testsuite/gcc.target/i386/pr37197.c
      - copied unchanged from r139471, trunk/gcc/testsuite/gcc.target/i386/pr37197.c
Modified:
    branches/gcc-4_3-branch/gcc/ChangeLog
    branches/gcc-4_3-branch/gcc/config/i386/i386.c
    branches/gcc-4_3-branch/gcc/config/i386/i386.md
    branches/gcc-4_3-branch/gcc/config/i386/mmx.md
    branches/gcc-4_3-branch/gcc/config/i386/sse.md
    branches/gcc-4_3-branch/gcc/testsuite/ChangeLog

Comment 7 Uroš Bizjak 2008-08-28 13:46:04 UTC
Fixed.
Comment 8 uros 2011-10-27 06:17:05 UTC
Author: uros
Date: Thu Oct 27 06:17:00 2011
New Revision: 180560

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180560
Log:
	PR target/37191
	* config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
	from different units in a single alternative.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/sse.md