<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; "><br><div><div>On Jan 3, 2013, at 2:21 PM, Akira Hatanaka <<a href="mailto:ahatanak@gmail.com">ahatanak@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi Nadav,<br><br>On Thu, Jan 3, 2013 at 1:53 PM, Nadav Rotem <span dir="ltr"><<a href="mailto:nrotem@apple.com" target="_blank">nrotem@apple.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Akira!<br>
<div class="im"><br>
><br>
> Does the current loop vectorizer inquire about the SIMD capabilities of the target architecture when it decides whether it is profitable to vectorize a loop?<br>
<br>
</div>Yes, it uses a cost model to determine the profitability of vectorization. At the moment only x86 provides the necessary hooks that are needed for calculating the costs. We may need to change the cost defaults to prevent vectorization on targets that don't implement the cost interface. If this is a problem for you then I can do it soon.<br>

<div class="im"><br></div></blockquote><div><br>I guess I can just implement all the vectorTargetTransformInfo::get*OpCost functions since I will later need a cost model for mips-dsp anyway.<br><br>Would the code in LoopVectorizationCostModel::expectedCost work correctly if those functions returned a large integer (max unsigned int)? </div></div></blockquote><div><br></div><div>Yes, it should just work. But I am also going to change the default to something more costly.  </div><div><br></div><blockquote type="cite"><div class="gmail_quote"><div>I am concerned about overflow.<br>
<br></div></div></blockquote><div><br></div><div>I never thought about it. I guess that it would be a good idea to change the LoopVectorizer cost accumulator to uint64. </div><div><br></div><div><br></div>Thanks,</div><div>Nadav</div><div><br></div></body></html>