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...