<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;">Hello -</span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;"><br></span></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;">I found this post on the llvm blog:<span class="apple-converted-space"> </span><a href="http://blog.llvm.org/2012/12/new-loop-vectorizer.html" style="color: purple;"><span style="color: rgb(149, 79, 114);">http://blog.llvm.org/2012/12/new-loop-vectorizer.html</span></a><span class="apple-converted-space"> </span>which makes me think that clang / llvm are capable of generating AVX with packed instructions as well as utilizing the full width of the YMM registers…  I have an environment where icc generates these instructions (vmulps %ymm1, %ymm3, %ymm2 for example) but I can not get clang/llvm to generate such instructions (using the 3.3 release or either 3.4 rc1 or 3.4 rc2).  I am new to clang / llvm so I may not be invoking the tools correctly but given that –fvectorize and –fslp-vectorize are on by default at 3.4 I would have thought that if the code is AVX-able by icc that clang / llvm would be able to do the same… The code is basic matrix multiplication written a number of ways (with and without transposition and such) as a performance measurement exercise.<o:p></o:p></span></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;"> <o:p></o:p></span></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;">The environments I’ve tried are:<o:p></o:p></span></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;">Intel Ivy Bridge-EX (pre-release hardware) running Red Hat Linux 6.5<o:p></o:p></span></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;">Generic desktop with Haswell processor running Fedora 18<o:p></o:p></span></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;"> <o:p></o:p></span></div></div><div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;">If you have a moment to point me to the appropriate docs I’m happy to go learn on my own – but I’ve now googled for the better part of 3 days trying to find what invocation parameters I should use to get the desired use of packed AVX instructions and the YMM registers and I just can’t seem to get it right.  I’m also grateful if you just send the correct invocation.</span></div></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;"><br></span></div><div style="margin: 0in 0in 0.0001pt;"><font face="Calibri, sans-serif"><span style="font-size: 11pt;">I</span><span style="font-size: 15px;">’</span><span style="font-size: 11pt;">ve actually started digging through the code as well - but since I am starting from zero it could take me a while to find an answer this way - just didn</span><span style="font-size: 15px;">’</span><span style="font-size: 11pt;">t want you to think I</span><span style="font-size: 15px;">’</span><span style="font-size: 11pt;">m not willing to try to find the </span><span style="font-size: 15px;">answer</span><span style="font-size: 11pt;"> on my own :-)</span></font></div><div style="margin: 0in 0in 0.0001pt;"><font face="Calibri, sans-serif"><span style="font-size: 11pt;"><br></span></font></div><div style="margin: 0in 0in 0.0001pt;"><font face="Calibri, sans-serif"><span style="font-size: 11pt;">Thank you,</span></font></div><div style="margin: 0in 0in 0.0001pt;"><font face="Calibri, sans-serif"><span style="font-size: 11pt;">Ken</span></font></div><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11pt; font-family: Calibri, sans-serif;"><br></span></div></body></html>