On 8 November 2011 09:22, Jakub Jelinek <ja...@redhat.com> wrote:

> 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?

The second option would be nicer.

>
> 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.

In fast-math-vect-call-1.c, f1 is basic block SLP, f2+f3 are loop SLP,
and f4 is regular loop vectorization.
So, f1 should be in fast-math-bb-slp-call-1.c,  with

/* { dg-final { scan-tree-dump-times "basic block vectorized using
SLP" 1 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

and

# -ffast-math
set VECT_SLP_CFLAGS $SAVED_VECT_SLP_CFLAGS
lappend VECT_SLP_CFLAGS "-ffast-math"
dg-runtest [lsort [glob -nocomplain
$srcdir/$subdir/fast-math-bb-slp-*.\[cS\]]]  \
        "" $VECT_SLP_CFLAGS

in  vect.exp.

The rest can simply stay in fast-math-vect-call-1.c, but to check SLP please use

/* { dg-final { scan-tree-dump-times "vectorized 1 loops" X "vect"  } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" Y
"vect"  } } */
/* { dg-final { cleanup-tree-dump "vect" } } */

>
>> Also there is no need in dg-do run.
>
> You mean because it is the default?

Yes.

Thanks,
Ira

> Certainly it is useful to test
> that gcc doesn't miscompile the tests.
>
>        Jakub
>

Reply via email to