This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug testsuite/51693] New XPASSes in vectorizer testsuite on powerpc64-suse-linux
- From: "michael.v.zolotukhin at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 28 Dec 2011 13:01:51 +0000
- Subject: [Bug testsuite/51693] New XPASSes in vectorizer testsuite on powerpc64-suse-linux
- Auto-submitted: auto-generated
- References: <bug-51693-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51693
--- Comment #4 from Michael Zolotukhin <michael.v.zolotukhin at gmail dot com> 2011-12-28 13:01:51 UTC ---
(In reply to comment #2)
> > I though that if {vect_aligned_arrays} isn't true, than arrays could
> > be aligned even after peeling - that's why I added such check.
>
> Sorry, I don't understand this sentence. What do you mean by aligned after
> peeling? Could you please explain what exactly happens on AVX (a dump file with
> -fdump-tree-vect-details would be the best thing).
Sorry, I misspelled. I meant "than arrays couldn't be aligned" - at least
without some runtime checks. I.e. we can't peel some compile-time-known number
of iterations and be sure that array become aligned.
E.g., if we have array IA of ints aligned to 16-bytes, and we have access
IA[i+3], then peeling of one iteration will guarantee alignment to 16-byte. But
we don't know, how much iterations needs to be peeled to reach alignment to
32-bytes (as needed for AVX operations).
> > Unfortunately, I can't reproduce these fails, as I have no PowerPC. By
> > the way, if arrays aren't aligned on Power, why does GCC produce such
> > messages - does it really try to peel something?
>
> The arrays in the tests are aligned. I said that I think that we can't promise
> that all the arrays are vector aligned on power. BTW, we can peel for unknown
> misalignment as well.
In this case we shouldn't add Power to vector_aligned_arrays, I guess.
> > Maybe we should just
> > refine the check?
> > Anyway, if everything is ok with the tests (in original version) and
> > with gcc itself - we could check not for vect_aligned_arrays, but for
> > AVX. Please check
> > http://gcc.gnu.org/ml/gcc-patches/2011-12/msg01600.html and the
> > attached to that letter patch.
>
> I think that everything was ok, but I don't think that using vect_sizes_32B_16B
> is a good idea. I would really like to see an AVX vect dump for eg.
> vect-peel-3.c.
In vect-peel-3.c we actually assume that vector length is 16 byte. Here is the
loop body:
suma += ia[i];
sumb += ib[i+5];
sumc += ic[i+1];
When vector-size is 16, then peeling can make two of three accesses aligned,
but when vector size is 32 that's impossible. That's why using
vector_sizes_32B_16B might be correct here.
Also, I uploaded the dump you asked.
Michael
> Thanks,
> Ira
>