This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RIF: [PATCH] Improved driver for vectorizer testsuite


  compile tests for generic vectors; default dg-do action is 'run'
  for each kind of hardware vectors supported by this target
    compile tests for hardware vectors
    if test system supports these vectors
      default dg-do action is 'run
    else
      default dg-do action is 'compile'

I see two problems:


1) most hardware vector testcases will fail when generic vectors are used, if only because ints do not vectorize on 32-bit machines.

2) generic vector testcases do not require funky effective-target keywords as long as they reason on "generic" types such as "half a word" and "a quarter of a word".

In fact when applying your patch, almost all tests were failing with generic vectors, and with only a bunch of exceptions it is very difficult to modify them and make them pass for both generic and hardware vectorization. It took me an hour to find five easy to modify testcases.

In other words, I'm not sure it is worth to keep the two testsuites as strictly unified as you proposed.

Also, regarding -msse vs. -msse2 vectorization, the problem in that case is that the various effective target keywords often hold only for one of them. E.g., -msse does not have vect_double but -msse2 has. This would either:

1) require really a lot of changes to the target-supports.exp code.

2) require changing the testcases so that they use #ifdef's (enabled with -D options that are passed together with -m options) instead of a proliferation of vect_* effective-target keywords. Not that I would not like that, but it entails a lot of side work (and possibly duplicated on autovect-branch).

I still think that for now it is better to keep it simple and use my original patch. It is possible to work incrementally from there, as you did indeed starting from my patch.

Paolo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]