http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55845
Uros Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-01-04 Ever Confirmed|0 |1 --- Comment #4 from Uros Bizjak <ubizjak at gmail dot com> 2013-01-04 08:13:03 UTC --- Please note how unspec_volatile vzeroupper (insn 225) moves above conditional jump comparison, passing many instructions: _.c.218r.csa: ... 110: {r8:SI=r8:SI+r11:SI;clobber flags:CC;} REG_UNUSED flags:CC 111: flags:CCZ=cmp(bx:SI,r11:SI) REG_DEAD r11:SI REG_DEAD bx:SI 105: xmm2:V4DF=vec_select(vec_concat(xmm1:V4DF,xmm1:V4DF),parallel) 106: xmm1:V4DF=xmm1:V4DF+xmm2:V4DF REG_DEAD xmm2:V4DF 234: xmm1:V2DF=xmm1:V2DF 235: xmm1:DF=xmm1:DF 109: xmm0:DF=xmm0:DF+xmm1:DF REG_DEAD xmm1:DF 112: pc={(flags:CCZ==0)?L230:pc} REG_DEAD flags:CCZ REG_BR_PROB 0xd06 226: NOTE_INSN_BASIC_BLOCK 22 225: unspec/v[0] 43 113: L113: 114: NOTE_INSN_BASIC_BLOCK 23 ... _.c.219r.jump2: ... 110: {r8:SI=r8:SI+r11:SI;clobber flags:CC;} REG_UNUSED flags:CC 225: unspec/v[0] 43 111: flags:CCZ=cmp(bx:SI,r11:SI) REG_DEAD r11:SI REG_DEAD bx:SI 105: xmm2:V4DF=vec_select(vec_concat(xmm1:V4DF,xmm1:V4DF),parallel) 106: xmm1:V4DF=xmm1:V4DF+xmm2:V4DF REG_DEAD xmm2:V4DF 109: xmm0:DF=xmm0:DF+xmm1:DF REG_DEAD xmm1:DF 112: pc={(flags:CCZ==0)?L231:pc} REG_DEAD flags:CCZ REG_BR_PROB 0xd06 113: L113: 114: NOTE_INSN_BASIC_BLOCK 23 ... Confirmed as rtl-optimization infrastructure problem.