------- Comment #4 from rguenth at gcc dot gnu dot org 2006-08-26 18:06 ------- Also fails on i686 with -O2 -msse2 -mfpmath=sse -ftree-vectorize -funswitch-loops and is a bug in unswitching which creates
<bb 2>: if (t1_7 != 0) goto <L17>; else goto <L18>; <L18>:; # ready_20 = PHI <ready_4(3), ready_12(5)>; # i_1 = PHI <0(3), i_17(5)>; # ready_2 = PHI <ready_4(3), ready_12(5)>; <L15>:; # ready_12 = V_MAY_DEF <ready_2>; ready[i_1] = 0; note ready_20 and ready_2 which are both life on entry to block L15 which is invalid for virtual operands. Updating of the SSA form is broken here. Slightly smaller testcase: tatic int ready[10]; void test_once (int t1) { int i; for (i = 0; i < 10; i++) { ready[i] = 0; if (t1) if (f()) return; } abort (); } -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rakdver at gcc dot gnu dot | |org GCC target triplet|x86_64-linux-gnu |x86_64-linux-gnu, i?86-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28839