<div dir="ltr">Or to make alignTo accept only power of twos and fix code that passes non-power-of-twos.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 6, 2016 at 1:35 PM, Rafael Avila de Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>My understanding is that modern CPUs do this already.<br>
<br>
What could help is to have a dedicated alignToP2.<br>
<br>
<br>
Cheers,<br>
Rafael<br>
<br><br><div class="gmail_quote"><span class="">On October 6, 2016 4:04:14 PM EDT, Rui Ueyama <<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>> wrote:</span><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<pre class="m_-3478445937435746931k9mail"><span class="">ruiu created this revision.<br>ruiu added reviewers: rafael, davide.<br>ruiu added a subscriber: llvm-commits.<br><br>If an alignment is a power of two, we can avoid integer division,<br>and it is very likely to happen.<br><br><br><a href="https://reviews.llvm.org/D25344" target="_blank">https://reviews.llvm.org/<wbr>D25344</a><br><br>Files:<br>  include/llvm/Support/<wbr>MathExtras.h<br><br><br>Index: include/llvm/Support/<wbr>MathExtras.h<br></span><hr><span class=""><br>--- include/llvm/Support/<wbr>MathExtras.h<br>+++ include/llvm/Support/<wbr>MathExtras.h<br>@@ -670,6 +670,10 @@<br> /// \endcode<br> inline uint64_t alignTo(uint64_t Value, uint64_t Align, uint64_t Skew = 0) {<br>   assert(Align != 0u && "Align can't be 0.");<br>+  if (LLVM_LIKELY(isPowerOf2_64(<wbr>Align))) {<br>+    Skew &= Align - 1;<br>+    return ((Value + Align - 1 - Skew) & -Align) + Skew;<br>+  }<br>   Skew %= Align;<br>   return (Value + Align - 1 - Skew) / Align * Align +
Skew;<br> }<br><br><br></span></pre></blockquote></div><span class="HOEnZb"><font color="#888888"><br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my brevity.</font></span></div></blockquote></div><br></div>