------- Comment #13 from irar at il dot ibm dot com 2009-12-15 13:07 ------- (In reply to comment #12) > > Looks that it has to be my patch that enables vectorization of conditions: > I am doing a clean bootstrap of C and FORTRAN of revision 149805 to see if the > test works for it (allow for ~6h on my poor G5). Then I'll update to 149806.
1) Thanks. I got confused by the var names, but actually there is no COND_EXPR there. But still, it can be this patch. So it worth checking. 2) The vectorizer's code for powerpc64-suse-linux I got is identical to darwin's except that the first has calls: _gfortran_set_args (argc_1(D), argv_2(D)); _gfortran_set_options (8, &options.36[0]); in the begining and the second one has this bb: <bb 43>: dt_parm.33.common.filename = &"where_2.f90"[1]{lb: 1 sz: 1}; dt_parm.33.common.line = 20; dt_parm.33.common.flags = 128; dt_parm.33.common.unit = 6; _gfortran_st_write (&dt_parm.33); parm.34.dtype = 265; parm.34.dim[0].lbound = 1; parm.34.dim[0].ubound = 10; parm.34.dim[0].stride = 1; parm.34.data = &temp[0]; parm.34.offset = -1; _gfortran_transfer_array (&dt_parm.33, &parm.34, 4, 0); _gfortran_st_write_done (&dt_parm.33); (I am attaching my dump). 3) The only difference between the targets I am aware of is natural alignment, but we don't do peeling, so it shouldn't make any difference here. 4) We do force alignment. Between in the revisions range there is this patch that may be somehow related: r149853 | pbrook | 2009-07-21 15:35:38 +0300 (Tue, 21 Jul 2009) | 12 lines 2009-07-21 Paul Brook <p...@codesourcery.com> gcc/ * tree-vectorizer.c (increase_alignment): Handle nested arrays. Terminate debug dump with newline. gcc/testsuite/ * gcc.dg/vect/section-anchors-nest-1.c: New test. * lib/target-supports.exp (check_effective_target_section_anchors): Add arm*-*-*. 5) Also looking at the assembly may help. Could you please attach it as well? Thanks, Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082