http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48678
--- Comment #5 from Uros Bizjak <ubizjak at gmail dot com> 2011-04-19 09:59:59
UTC ---
(In reply to comment #4)
> Might be a good idea, though IMHO just for 4.7, not for 4.6.
> Would you be ok with this patch (plus testcase obviously) for 4.6? If yes, is
> it ok temporarily for 4.7 too and you'd then go ahead and adjust it for
> pinsr*?
> The movstrict{hi,qi}_1 pattern then would probably need to have variant with x
> and either have # for that alternative or something similar. The expander
> would still need to reject 256-bit vector modes and XFmode, other floating
> point modes for non-SSE math, etc.
Yes, IMO this is OK ATM.
BTW: While experimenting with pinsr pattern, I got following expansion:
(insn 117 116 0 (set (strict_low_part (subreg:HI (reg/v:V2DI 129 [ b ]) 8))
(mem/s/j:HI (plus:DI (plus:DI (mult:DI (reg:DI 189)
(const_int 2 [0x2]))
(reg/f:DI 54 virtual-stack-vars))
(const_int -64 [0xffffffffffffffc0])) [0 array S2 A16]))
no_register_error.cpp:49 -1
(nil))
Not exactly a "strict_low_part" with 8-byte offset...