------- Comment #4 from pinskia at gcc dot gnu dot org 2009-01-21 03:00 ------- (In reply to comment #2) That is because the early complete unrolling comes and unrolls the loop so the autovectorizer does not have a loop to work on anymore. If I increase it to be 16 instead of 4, the loop is vectorizer.
So the original testcase is invalid as two things: aliasing and alignment. Aliasing because out could overlap with in1/in2, restrict fixes that. And then the alignment comes into play because there is no way to say the incoming arguments are 16 byte aligned. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38899