Re: "unhandled use" in vectorizing a dot product?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/01/2009 02:28 AM, Ira Rosen wrote:
Benjamin Redelings<benjamin_redelings@xxxxxxxx>  wrote on 01/12/2009
01:24:15:
Also, perhaps the documentation should explicitly say somewhere that
vectorization can depend on flags like this.  "unhandled use in
statement" certainly doesn't point the user to an idea of how to fix
this :-P
The vectorizer prints:

  "unsafe fp math optimization: sum_18 = D.2721_17 + sum_26;"

But you are right, the bottom line printing:

  "not vectorized: unsupported use in stmt."

doesn't help much.

Ira
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.

( 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.)

2. Interestingly, the following is recognized WITHOUT -ffast-math:

  for(i=0;i<argc;i++)
    f4[i] += f1[i]*f2[i]*f3[i];

If I change this to the following, then it needs -ffast-math:

  for(i=0;i<argc;i++)
    sum += f1[i]*f2[i]*f3[i];

This is essentially doing the first thing, plus also summing the f4[i]. I guess that is the problem?

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?

Thanks for all your help!

-BenRI





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux