------- Comment #2 from rguenth at gcc dot gnu dot org 2008-04-24 11:27 ------- <bb 2>: vect_px.14_32 = (vector double *) &x; vect_px.9_31 = vect_px.14_32; vect_ptmp.24_42 = (vector double *) &tmp; vect_ptmp.19_43 = vect_ptmp.24_42;
<bb 3>: # SMT.20_50 = PHI <SMT.20_58(4), SMT.20_51(D)(2)> # ivtmp.26_48 = PHI <ivtmp.26_49(4), 0(2)> # ivtmp.25_44 = PHI <ivtmp.25_45(4), vect_ptmp.19_43(2)> # ivtmp.15_35 = PHI <ivtmp.15_36(4), vect_px.9_31(2)> # tmp_34 = PHI <tmp_57(4), tmp_23(D)(2)> # VUSE <x_24(D), SMT.10_52(D)> vect_var_.16_37 = *ivtmp.15_35; ivtmp.15_38 = ivtmp.15_35 + 16; # VUSE <x_24(D), SMT.10_52(D)> vect_var_.17_39 = *ivtmp.15_38; ivtmp.15_40 = ivtmp.15_38 + 16; # VUSE <x_24(D), SMT.10_52(D)> vect_var_.18_41 = *ivtmp.15_40; # tmp_53 = VDEF <tmp_34> # SMT.20_54 = VDEF <SMT.20_50> *ivtmp.25_44 = vect_var_.16_37; ivtmp.25_46 = ivtmp.25_44 + 16; # tmp_55 = VDEF <tmp_53> # SMT.20_56 = VDEF <SMT.20_54> *ivtmp.25_46 = vect_var_.17_39; ivtmp.25_47 = ivtmp.25_46 + 16; # tmp_57 = VDEF <tmp_55> # SMT.20_58 = VDEF <SMT.20_56> *ivtmp.25_47 = vect_var_.18_41; ivtmp.15_36 = ivtmp.15_40 + 16; ivtmp.25_45 = ivtmp.25_47 + 16; ivtmp.26_49 = ivtmp.26_48 + 1; if (ivtmp.26_49 < 5) goto <bb 4>; else goto <bb 5>; <bb 4>: goto <bb 3>; the final increment for ivtmp.15_36 is wrong -- it should be 48. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36034