<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Hi Josh, </div><div><br></div><div>This line works for me:</div><div><br></div><div>opt file.ll -loop-vectorize -S -o - -mtriple=x86_64 -mcpu=corei7-avx -debug<br><br></div><div>You need to specify the triple on the command line if it is not inside the module. </div><div><br></div><div>Thanks,</div><div>Nadav</div><div><br></div><div><br></div><br><div><div>On May 9, 2013, at 5:53 PM, Joshua Klontz <<a href="mailto:josh.klontz@gmail.com">josh.klontz@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div dir="ltr">Nadav,<div><br></div><div>Please forgive my ignorance, but 'opt -mcpu=corei7 -loop-vectorize -S -debug double.ll' doesn't appear to make a difference. In fact it seems to be ignored as garbage values for -mcpu don't raise an error. Am I overlooking something else also?</div><div><br></div><div>Many Thanks,</div><div>Josh</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 9, 2013 at 6:06 PM, Nadav Rotem<span class="Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:nrotem@apple.com" target="_blank">nrotem@apple.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;">Hi Josh, <div><br></div><div>Your modules does not have a triple, so the target machine and TargetTransformInfo have no way of knowing if you are running on a machine with vector registers.  Try adding the '-mcpu=XXXX' to opt and see what happens. </div><div><br></div><div>Thanks,</div><div>Nadav</div><div><br><div><div>On May 9, 2013, at 1:42 PM, Josh Klontz <<a href="mailto:josh.klontz@gmail.com" target="_blank">josh.klontz@gmail.com</a>> wrote:</div><br><blockquote type="cite"><div style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">Hi! I am trying to get the loop vectorizer to work on a simple example<br>(<a href="http://pastebin.com/tGhpc4y0" target="_blank">http://pastebin.com/tGhpc4y0</a>) that doubles every element in a vector.<br><br>I've found that 'opt -loop-vectorize -force-vector-width=4 -S -debug<br>double.ll' works as expected. However, removing the -force-vector-width flag<br>results in no vectorization. From the debug output I can see that the issue<br>boils down to:<br><br>LV: The Widest type: 32 bits.<br>LV: The Widest register is:32bits.<br><br>I tried to work back through the source code to figure out why the widest<br>register is incorrect, though I get lost following the code logic for how<br>TargetTransformInfo gets initialized. Therefore, I have two questions:<br><br>1) Can -force-vector-width be specified from the C++ API? And if so, how?<br>2) What am I neglecting to do so that TargetTransformInfo is set correctly<br>and vectorization happens without forcing a vector width? Ultimately I would<br>like use vectorization in conjunction with the JIT ExecutionEngine.<br><br>Thank you to those of you who have answered my questions in the past, the<br>answers have helped tremendously and I am extremely grateful!<br><br>Kindly,<br>Josh<br><br><br><br><span class="HOEnZb"><font color="#888888"><br>--<br>View this message in context:<span> </span><a href="http://llvm.1065342.n5.nabble.com/Simple-Loop-Vectorize-Question-tp57584.html" target="_blank">http://llvm.1065342.n5.nabble.com/Simple-Loop-Vectorize-Question-tp57584.html</a><br>Sent from the LLVM - Dev mailing list archive at<span> </span><a href="http://nabble.com/" target="_blank">Nabble.com</a>.<br>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a><span> </span>        <a href="http://llvm.cs.uiuc.edu/" target="_blank">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a></font></span></div></blockquote></div></div></div></blockquote></div></div></div></blockquote></div><br></body></html>