--- Comment #2 from rguenth at gcc dot gnu dot org 2007-02-12 09:58 ---
Confirmed. We hit
#1 0x00ecf362 in vectorizable_type_promotion (stmt=0x2afac97cd000,
bsi=0x0, vec_stmt=0x0)
at /space/rguenther/src/svn/trunk/gcc/tree-vect-transform.c:2752
2752 gcc_assert (ncopies = 1);
because nunits_in is 4 but LOOP_VINFO_VECT_FACTOR (loop_vinfo) is 2. As this is
actually a widening (i_45 is int):
D.6364_12 = (long unsigned int) i_45
This is the loop:
# SMT.373_48 = PHI SMT.373_35(5), SMT.373_33(3)
# SMT.372_46 = PHI SMT.372_34(5), SMT.372_32(3)
# i_45 = PHI i_17(5), 0(3)
L0:;
d.29_10 = pretmp.393_8;
D.6363_11 = pretmp.394_7;
D.6364_12 = (long unsigned int) i_45;
D.6365_13 = D.6364_12 * 12;
D.6366_14 = (struct LADSPA_PortRangeHint *) D.6365_13;
D.6367_15 = pretmp.394_7 + D.6366_14;
D.6368_16 = D.6367_15-LowerBound;
# SMT.372_34 = VDEF SMT.372_46
# SMT.373_35 = VDEF SMT.373_48
plugin_3-ports[i_45] = D.6368_16;
i_17 = i_45 + 1;
if (i_17 D.6359_44) goto L9; else goto L2;
so we are actually trying to vectorize a widening of the induction variable.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
CC||dorit at il dot ibm dot com,
||rguenth at gcc dot gnu dot
||org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30771