------- Comment #21 from irar at il dot ibm dot com  2009-06-16 11:08 -------
(In reply to comment #20)
> What are the expected patterns for the 3 variables
> with -m32 and -m64?

I am not sure, this is why I asked you if the target is 
([istarget *-*-darwin*] && [is-effective-target lp64]).

vect_no_align and vect_hw_misalign have to be false, so, I guess,
vector_alignment_reachable is different for -m32 and -m64, since the behaviour
is different. 

"Alignment of access forced using versioning" means the vectorizer uses loop
versioning to force alignment. It happens when there is no misalignment support
at all (vect_no_align) or when other methods fail: loop peeling doesn't help
(!vector_alignment_reachable) and also there is no hardware misalignment
support (!vect_hw_misalign).

>From the dump you attached, I see that loop peeling was done, therefore,
vector_alignment_reachable is true, and it must not look for "Alignment of
access forced using versioning". But it does. This what makes me think that it
is just a syntax problem.

On the other hand, I don't understand the difference with -m32 and -m64. It
seems to me, that ([istarget *-*-darwin*] && [is-effective-target lp64]) is
false for -m32 and, possibly, true for -m64. But that contradicts the dump.


-- 


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

Reply via email to