User account creation filtered due to spam.

Bug 20447 - ICE in output_operand: invalid expression as operand
Summary: ICE in output_operand: invalid expression as operand
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.1.0
: P2 normal
Target Milestone: 4.0.0
Assignee: Richard Henderson
URL:
Keywords: ice-on-valid-code, ssemmx
Depends on:
Blocks:
 
Reported: 2005-03-12 23:23 UTC by Serge Belyshev
Modified: 2005-04-05 23:03 UTC (History)
2 users (show)

See Also:
Host:
Target: x86_64-unknown-linux-gnu
Build:
Known to work:
Known to fail:
Last reconfirmed: 2005-04-01 00:33:31


Attachments
testcase (1302 bytes) (455 bytes, text/plain)
2005-03-12 23:24 UTC, Serge Belyshev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Serge Belyshev 2005-03-12 23:23:30 UTC
--------------------------------------------------------------------------------
$ gcc -O2 bug.c
bug.c: In function ‘baz’:
bug.c:54: internal compiler error: output_operand: invalid expression as operand
--------------------------------------------------------------------------------

fails with 4.0.0 and mainline, might be related to bug 20342.
Comment 1 Serge Belyshev 2005-03-12 23:24:21 UTC
Created attachment 8378 [details]
testcase (1302 bytes)
Comment 2 CVS Commits 2005-04-05 22:53:26 UTC
Subject: Bug 20447

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rth@gcc.gnu.org	2005-04-05 22:53:08

Modified files:
	gcc            : ChangeLog 
	gcc/config/i386: i386.c i386.h i386.md predicates.md 

Log message:
	PR target/20342
	PR target/20447
	* config/i386/i386.c (print_operand): Handle vector zeros.
	(ix86_split_to_parts): Handle CONST_VECTOR.
	(ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
	(ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
	what modes to tie for MMX and SSE registers.
	* config/i386/i386.h (MMX_REG_MODE_P): Remove.
	* config/i386/i386.md: Extend move 0 -> xor peephole to apply
	to vector modes as well.
	* config/i386/predicates.md (const0_operand): Handle VOIDmode
	properly as an input mode.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8153&r2=2.8154
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&r1=1.804&r2=1.805
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.h.diff?cvsroot=gcc&r1=1.425&r2=1.426
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcc&r1=1.624&r2=1.625
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/predicates.md.diff?cvsroot=gcc&r1=1.16&r2=1.17

Comment 3 CVS Commits 2005-04-05 22:59:55 UTC
Subject: Bug 20447

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-4_0-branch
Changes by:	rth@gcc.gnu.org	2005-04-05 22:59:33

Modified files:
	gcc            : ChangeLog 
	gcc/config/i386: i386.c i386.h i386.md predicates.md 

Log message:
	PR target/20342
	PR target/20447
	* config/i386/i386.c (print_operand): Handle vector zeros.
	(ix86_split_to_parts): Handle CONST_VECTOR.
	(ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
	(ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
	what modes to tie for MMX and SSE registers.
	* config/i386/i386.h (MMX_REG_MODE_P): Remove.
	* config/i386/i386.md: Extend move 0 -> xor peephole to apply
	to vector modes as well.
	* config/i386/predicates.md (const0_operand): Handle VOIDmode
	properly as an input mode.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.7592.2.128&r2=2.7592.2.129
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.795.6.2&r2=1.795.6.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.h.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.421&r2=1.421.6.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.618&r2=1.618.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/predicates.md.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.16&r2=1.16.10.1

Comment 4 Richard Henderson 2005-04-05 23:03:22 UTC
Fixed.