<div dir="ltr"><div dir="ltr">On Thu, Mar 28, 2019 at 2:20 PM Billy O'Neal (VC LIBS) <<a href="mailto:bion@microsoft.com">bion@microsoft.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
> <span style="font-size:15px;background-color:rgb(255,255,255);display:inline">all they do is emit
 a volatile load</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:15px;background-color:rgb(255,255,255);display:inline"><br>
</span></div>
<div style="color:rgb(0,0,0)"><span style="font-size:15px">If I understand correctly the point of these is to make an ordinary volatile load/store happen on ARM under
<a href="https://docs.microsoft.com/en-us/cpp/build/reference/volatile-volatile-keyword-interpretation?view=vs-2017" title="https://docs.microsoft.com/en-us/cpp/build/reference/volatile-volatile-keyword-interpretation?view=vs-2017" target="_blank">
/volatile:ms</a>. We asked for the intrinsic to also be provided on Intel because it reduces the amount of macro-tastic-ness we need in <atomic>.</span></div></div></blockquote><div><br></div><div>That makes sense, but I'm left wondering in what context a plain volatile load is useful for implementing <atomic>. I went in assuming that, to implement atomic, you need to use intrinsics to emit atomic memory operations.</div><div><br></div><div>Are you sure we shouldn't be marking these as atomic instead of volatile? Volatile is usually not suitable for anything except  </div></div></div>