Setting triple for opt worked.  In my case, it is <div><br></div><div>$ opt -mtriple=x86_64-apple-macosx10.8.0 -S -O3 -vectorize-loops loopvectorize.ll<div><br></div><div>Thanks,</div><div>Siu<br><div><br><div class="gmail_quote">
On Mon, Dec 31, 2012 at 1:57 PM, Benjamin Kramer <span dir="ltr"><<a href="mailto:benny.kra@gmail.com" target="_blank">benny.kra@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On 31.12.2012, at 20:03, Michael Lam <<a href="mailto:michael.lam.sk@gmail.com">michael.lam.sk@gmail.com</a>> wrote:<br>
<br>
> Hi all,<br>
><br>
> I am trying out the new loop vectorizer in LLVM 3.2.  I wanted to see the effect of the pass in `opt` but I have no success.  I used LLVM IR generated from C examples in <a href="http://blog.llvm.org/2012/12/new-loop-vectorizer.html#more" target="_blank">http://blog.llvm.org/2012/12/new-loop-vectorizer.html#more</a> and pass them to `opt -S -O3 -vectorize-loops example.ll`.  However, I do not see vectorized output.  What am I doing wrong?<br>

<br>
I'm not entirely sure why this is the case, the target specific stuff for opt is still very new, but at the moment you have to explicitly set a triple for opt so it can access target-specific bits to estimate the cost of vectorization. Something like "opt -mtriple=x86_64-linux-gnu -S -O3 -vectorize-loops" should work. You can also specify a target cpu with -mcpu (which takes the same arguments as clang -march) to experiment with different SSE levels.<br>

<br>
- Ben<br>
<br>
</blockquote></div><br></div></div></div>