<div dir="ltr"><div class="gmail_extra">On Thu, Jun 13, 2013 at 11:39 AM, Guo, Xiaoyi <span dir="ltr"><<a href="mailto:Xiaoyi.Guo@amd.com" target="_blank">Xiaoyi.Guo@amd.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">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">In a multi-threaded environment, in order to ensure the memory ordering expressed by the memory fence, certain memory operations should not be moved across
 the fence, right?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u></span></p></div></div></blockquote></div><br></div><div class="gmail_extra">Yes, but operations on noalias pointers don't fall into that category.  For noalias pointers, while the function is running, any operation on the pointed-to memory has to be based on the noalias pointer.  This applies to all threads in the program, not just the one the function is called from.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">-Eli</div></div>