This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Use of check_vect() in vectorizer testsuite
Devang Patel <dpatel@apple.com> wrote:
> check_vect() is used to test whether to run the test or not. Now,
> vect.exp does the job more efficiently.
>
> 29 # If the target system supports vector instructions, the
> default action
> 30 # for a test is 'run', otherwise it's 'compile'. Save
> current default.
> 31 # Executing vector instructions on a system without hardware
> vector support
> 32 # is also disabled by a call to check_vect, but disabling
> execution here is
> 33 # more efficient.
>
>
> And dg-require-... should control whether this test should be enabled
> or not. So depending upon the failure (runtime or compiler not
> vectorizing loops), you want to update appropriate code block in
> vect.exp for your platform.
The point is that my target is i686-pc-linux-gnu, which supports vector
instruction (through -msse2), but whether the instructions can actually be
run or not depends on the given processor (e.g. Pentium 3 vs Pentium 4).
Even if my processor cannot *execute* the vectorized tests, I would still
like to test whether vectorization succeeds or not (that is, at least as
compile-time tests).
So, the point is that you cannot select between compile-time/run-time based
on a target triplet check, at least for this target. What do you suggest?
All the other tests use check_vect() exactly for this reason, as far as I
can see, so it looks to me that the sensible thing to do is to use
check_vect there as well.
For an example of the failures, see for instance:
http://gcc.gnu.org/ml/gcc-testresults/2005-06/msg00553.html (which is
Diego's tester).
--
Giovanni Bajo