http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48678

--- Comment #3 from Uros Bizjak <ubizjak at gmail dot com> 2011-04-19 08:33:49 
UTC ---
(In reply to comment #2)
> Having (strict_low_part (subreg:HI (reg:V2DI ...) 0)) on the LHS doesn't sound
> like a good idea to me (and this is created already during expansion).  Maybe
> reload should be supposed to handle that (it could copy the V2DI reg into a
> general reg, then do the movstrict on the general reg and then copy it back),
> but IMHO it is never going to lead to efficient code.  The following patch
> fixes the ICE for me, but dunno if that is how we want to fix it.
> Before the r161655 change arbitrary VCEs (in form of MEM_EXPR) weren't allowed
> on the LHS, so this wasn't a problem.

We can perhaps implement S_L_P inserts with pinsr instructions (pinsrw in this
case). Since SSE2 implements only pinsrw (other widths are implemented in
SSE4_1) this would slightly complicate movstrict expander, but IMO, it is worth
a try.

Reply via email to