This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, i386]: Fix ICE in tree-ssa/prefetch-[89].c


Hello!

Renaming UNSPEC_MOVNT to UNSPEC_MOVNTI was not a good idea, since it caused [1]:

prefetch-8.c: In function ‘test’:
prefetch-8.c:16:1: error: unrecognizable insn:
(insn 15 14 16 4 (set (mem:SI (plus:SI (mult:SI (reg/v:SI 64 [ i ])
                    (const_int 4 [0x4]))
                (reg/f:SI 65)) [2 MEM[symbol: a, index: i_9, step: 4,
offset: 0B]+0 S4 A32])
        (unspec:SI [
                (reg:SI 66)
            ] UNSPEC_MOVNT)) prefetch-8.c:15 -1
     (nil))
prefetch-8.c:16:1: internal compiler error: in extract_insn, at recog.c:2137

Fixed by attached patch that also added missing modes to STORENT_MODE
mode iterator.

2011-11-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (UNSPEC_MOVNTI): Remove.
	(UNSPEC_MOVNTQ): New unspec.
	* config/i386/mmx.md (sse_movntdi): Use UNSPEC_MOVNTQ instead of
	UNSPEC_MOVNT.
	* config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
	UNSPEC_MOVNTI.
	(STORENT_MODE): Add DI and V4DI modes.

Patch was tested on x86_64-pc-linux-gnu {,-m32} and committed to mainline SVN.

[1] http://gcc.gnu.org/ml/gcc-testresults/2011-11/msg02046.html

Uros.

Attachment: p.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]