--- Comment #1 from rguenth at gcc dot gnu dot org 2010-08-05 15:03 ---
Created an attachment (id=21402)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21402&action=view)
patch needed
Patch needed to trigger this exact situation with that exact testcase.
--
http://gcc.gnu.org/
--- Comment #2 from rguenth at gcc dot gnu dot org 2010-08-05 15:53 ---
Sth like
Index: config/i386/i386.md
===
--- config/i386/i386.md (revision 162913)
+++ config/i386/i386.md (working copy)
@@ -1957,6 +1957,30 @@ (define
--- Comment #3 from pinskia at gcc dot gnu dot org 2010-08-05 15:55 ---
(subreg:DI
+ (match_operand:V4SF 1 "register_operand"
+ "x,x") 0)
That is not a valid subreg and should have be rejected.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45198
--- Comment #4 from pinskia at gcc dot gnu dot org 2010-08-05 15:58 ---
How did you get that subreg in the first place; it should have produced a
vec_extract there instead of a subreg.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45198
--- Comment #5 from rguenther at suse dot de 2010-08-05 16:16 ---
Subject: Re: Unnecessary spill slot for highpart extraction
of xmm reg
On Thu, 5 Aug 2010, pinskia at gcc dot gnu dot org wrote:
> --- Comment #4 from pinskia at gcc dot gnu dot org 2010-08-05 15:58
> ---
> H
--- Comment #6 from hjl dot tools at gmail dot com 2010-08-05 16:44 ---
Unlike integer modes, middle-end only knows memory when moving with
subreg on vector mode.
--
hjl dot tools at gmail dot com changed:
What|Removed |Added
--
--- Comment #7 from hjl dot tools at gmail dot com 2010-08-05 16:58 ---
Can we add direct support for moving with (subreg:DI (reg:TI)) and
(subreg:TI (reg:OI))?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45198
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45198
--- Comment #8 from H.J. Lu ---
(In reply to Andrew Pinski from comment #3)
> (subreg:DI
> + (match_operand:V4SF 1 "register_operand"
> + "x,x") 0)
>
> That is not a valid subreg and should have be rejected.
This change:
http://