http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55052
--- Comment #3 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> 2012-11-28 02:23:33 UTC --- fwprop in the failure case ends up replacing . In insn 50, replacing (sign_extend:V4SI (ashift:V4HI (subreg:V4HI (reg:V8HI 269 [ vect_var_.41 ]) 8) (const_int 3 [0x3]))) with (const_vector:V4SI [ (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) ]) but that can't be right ..... especially if the value in reg 269 is essentially out of a vld4. 33 r269:V8HI=zero_extend(vec_select(r268:V16QI,parallel)) 34 r270:V8HI=zero_extend(vec_select(r268:V16QI,parallel)) 35 r1211:V16QI=const_vector 36 r275:V16QI=r1211:V16QI&r1196:XI#32 37 r276:V8HI=zero_extend(vec_select(r275:V16QI,parallel)) 38 r277:V8HI=zero_extend(vec_select(r275:V16QI,parallel)) 39 r1212:V4SI=sign_extend(r269:V8HI#0<<0x3) 40 r1213:V4SI=zero_extend(vec_select(r252:V8HI,parallel)) 41 r1214:V4SI=r1213:V4SI>>const_vector 42 r1215:V4SI=r1212:V4SI|r1214:V4SI 43 r1216:V4SI=sign_extend(r276:V8HI#0<<0x8) 44 r1217:V4SI=r1215:V4SI|r1216:V4SI 45 r1218:V4SI=zero_extend(vec_select(r258:V8HI,parallel)) 46 r1219:V4SI=r1218:V4SI>>const_vector 47 r1220:V4SI=r1217:V4SI|r1219:V4SI 48 [r1198:SI]=unspec[r1220:V4SI] 164 50 r1221:V4SI=sign_extend(r269:V8HI#8<<0x3) Attached is a .i file and associated dumps. Ramana