------- Comment #25 from irar at il dot ibm dot com  2009-06-17 11:06 -------
(In reply to comment #24)
> If I add to vect-42.c (with my patch) the line
>
> /* { dg-final { scan-tree-dump-times "bla bla bla" 1 "vect" { target
vector_alignment_reachable } } } */
...
> i.e., the test is done for -m32 (and fail) but not for -m64.

So, vector_alignment_reachable is true for -m32 and false for -m64.

...
> i.e., vect_hw_misalign is false for both -m32 and -m64.
> So it looks that vect_hw_misalign has the opposite meaning of that assumed in
> comment #16:
> > hmmm... versioning should not be done for targets that support
> > vect_hw_misalign... 

Why? vect_hw_misalign means that misaligned data acceses are supported by
hardware, therefore, we don't need to do versioning. And we expect versioning
here with -m64 since both vect_hw_misalign and vector_alignment_reachable are
false.

> Final note, the change in comment #17 does not help.

Thanks for checking.


I still don't understand why this test works on -m64
/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling"
1 "vect" { xfail { { vect_no_align || vect_hw_misalign } || { !
vector_alignment_reachable } } } } } */
vector_alignment_reachable is false, so there should be no peeling according to
the test. But it is there, and the test doesn't XPASS...

And, of course, I don't understand why we do peeling, i.e., builtin
vector_alignment_reachable returns true.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40359

Reply via email to