Benjamin Redelings I <benjamin_redelings@xxxxxxxx> wrote on 01/12/2009 18:06:49: > Hi Ira, > > 1. That's actually quite helpful :-) And thank you for all your work > on this! I can't wait to go make sure my actual code is autovectorized. > > Anyway, I didn't see this because I didn't use > -ftree-vectorizer-verbose=9. Would it be possible to mention this at > verbosity levels less than 9? Ideally, level 2, which tells me which > loops aren't vectorized without mentioning all the cost model parameters. The problem with this is that the vectorizer goes through all the statements in the loop and checks if they are vectorizable in different ways. (One of the possibilities, for example, is reduction). If one of the possibilities fails, it doesn't mean that the statement/loop is not vectorizable. Only if all of them fail, the vectorization fails. Therefore, printing an error message for every vectorization possibility is not such a good idea. But I'll try to see how we can improve the level 2 messages. > > ( BTW the gcc man pages indicate that 7 is the highest value for > tree-vectorizer-verbose, although it seems that now 9 is the highest value.) Thanks, I'll fix this. ... > 3. Finally, the following loop does not even receive a mention as being > not vectorized (that I could find!) > > for(i=0;i<argc;i++) > sum += d1[i]*d2[i]*d3[i]*d4[i]; > > Here d1, d2, d3, and d4 are double*. However, the loop is recognized if > they are float * OR of they are double* but there are only three of > them. I presume this is intended... can you explain why? No :). I tried to compile it and it looks normal. Could you please attach the whole file and specify the exact command line? (The only reason I can think of is that, somehow, the loop gets optimized out). Ira > > Thanks for all your help! > > -BenRI > > > >