cancel
Showing results for 
Search instead for 
Did you mean: 

Server Gurus Discussions

heyhd9475
Journeyman III

AOCC-3.2.0 Loop Vectorization on some specific program

I found a instreresting thing recently is that when I use the AOCC-3.2.0 compile some program, it can vectorized some loop but LLVM-15 cannot, when I use the flags '-Rpass(-analysis/-missed)=loop-vectorize' and '-mllvm -debug-only=loop-vectorize' to explore the reason, I get the output as following:

 

vectorized loop by MELV with VF: 16 UF: 1

 

but the 'MELV' didn't occur in LLVM-15 output, so I wanna know what the MELV is, I guess the M is memory?

 

0 Likes
1 Solution

Hi heyhd9475, in addition to normal exit from the loop after executing the maximum possible number of iterations (maximum trip count), loops with early conditional exit - based on the result of a memory load - can be vectorized my MELV.  There was some work done on llvm.org also - refer public-notes/multiple-exit-vectorization.rst at master · preames/public-notes (github.com) - but its...

Also, I will raise a ticket to make more compiler documentation available publicly.

 

 

 

View solution in original post

7 Replies
dipak
Big Boss

Thanks for posting it. 

For AOCC related support, the AMD Server Gurus community is the right place to post any query or issue, so I am moving this post there.

Thanks.

0 Likes

okay, thanks a lot

0 Likes

Hi heyhd9475, Multi-Exit Loop Vectorizer (MELV) is an optimization introduced by AOCC Compiler to vectorize the loops which have multiple exits from the loop.

Regards,

Santosh

0 Likes

Hi santosh, 

is there more detailed information about this technology?

thanks a lot

0 Likes

Hi heyhd9475, in addition to normal exit from the loop after executing the maximum possible number of iterations (maximum trip count), loops with early conditional exit - based on the result of a memory load - can be vectorized my MELV.  There was some work done on llvm.org also - refer public-notes/multiple-exit-vectorization.rst at master · preames/public-notes (github.com) - but its...

Also, I will raise a ticket to make more compiler documentation available publicly.

 

 

 

Hi heyhd9475, Can you share more information like what benchmark you are experimenting this on?  And you can try our latest AOCC release 4.0.  AMD Zen Software Studio | AMD

0 Likes

Hi santosh, I just use AOCC to build the SPEC CPU 2017 intrate case 557.xz_r

0 Likes