http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46614
--- Comment #5 from Uros Bizjak <ubizjak at gmail dot com> 2010-11-23 10:01:03 UTC --- It looks that sched2 pass is to blame. For the original case, we have: _.split4: ;; Function main1 (main1) ... 207 [sp:DI+0x30]=xmm8:V16QI REG_DEAD: xmm8:V16QI 1158 xmm1:V16QI=xmm6:V16QI 208 xmm1:V16QI=vec_select REG_EQUIV: [frame:DI-0x60] 209 [sp:DI+0x40]=xmm1:V16QI REG_DEAD: xmm1:V16QI 210 xmm6:V16QI=vec_select REG_DEAD: xmm5:V16QI REG_EQUIV: [frame:DI-0x50] 211 [sp:DI+0x50]=xmm6:V16QI REG_DEAD: xmm6:V16QI ... 468 NOTE_INSN_BASIC_BLOCK 1327 r12:SI=zero_extend([di:DI+0x35]) 1328 r13:SI=zero_extend([sp:DI+0x50]) 471 {bp:SI=bp:SI+r12:SI;clobber flags:CC;} ... _.sched2: ;; Function main1 (main1) ... 1406 NOTE_INSN_PROLOGUE_END 223 dx:QI=[di:DI+0x2] 221 ax:QI=[di:DI+0x1] 8 xmm2:V16QI=unspec[[di:DI+0x11]] 40 1339 r12:SI=zero_extend([sp:DI+0x48]) 1328 r13:SI=zero_extend([sp:DI+0x50]) 6 xmm1:V16QI=unspec[[di:DI+0x1]] 40 ... 211 [sp:DI+0x50]=xmm6:V16QI REG_DEAD: xmm6:V16QI 1383 r10:SI=zero_extend([sp:DI+0x28]) 209 [sp:DI+0x40]=xmm1:V16QI REG_DEAD: xmm1:V16QI ... See how (insn 1339) and (insn 1328) passed (insn 209) and (insn 211).