On Tue, Nov 08, 2011 at 09:05:16AM +0200, Ira Rosen wrote: > > + /* Arguments are ready. Create the new vector stmt. */ > > + FOR_EACH_VEC_ELT (tree, vec_oprnds0, i, vec_oprnd0) > > Was this line left by mistake?
Oops, yes. It didn't make a difference at runtime, so passed the test, will fix. Thanks for catching this up. > > + for (i = 0; VEC_iterate (tree, vec_oprnds0, i, vec_oprnd0); > > + i += 2) > > Could you please rearrange the tests (separate basic blocks and loops) > and make them actually test that bbs/loops were vectorized? This is more difficult for me, my familiarity with gcc.dg/vect/ infrastructure is very weak. First of all, whether copysignf, sqrtf and/or lrint are vectorized is very much target specific, should I guard the dg-final lines with { target { i?86-*-* x86_64-*-* } } resp. { target { { i?86-*-* x86_64-*-* } && !lp64 } } (the latter for lrint - we don't vectorize it on x86_64), or add vect_call_copysignf, vect_call_sqrtf, vect_call_lrint tests in *.exp? For the split, some fns are hybrid, so shall I split f1+f2+f3 as slp and f4 as loop, or is f3 (hybrid) something else? What test names should I use? fast-math-slp-call-*.c/fast-math-vect-call-*.c or something else? From what I gather for bb slp the test should start with bb-slp-* (is that f1/f2 or just f1?), but then there is currently no way to add -ffast-math. > Also there is no need in dg-do run. You mean because it is the default? Certainly it is useful to test that gcc doesn't miscompile the tests. Jakub