[PATCH] SLP vectorize calls (take 2)
Jakub Jelinek
jakub@redhat.com
Tue Nov 8 08:03:00 GMT 2011
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
More information about the Gcc-patches
mailing list