<div dir="ltr"><div class="gmail_extra">I assume you're compiling for sparcv9? Atomics of sizes != 4 or 8 bytes are just completely busted at the moment. This is on my list of things to fix in the near future.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 1, 2016 at 12:41 PM, Chris.Dewhurst via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">I'm not quite sure I understand what's happening here, but the following test (which derives from GCC tests) isn't working for Sparc. Could anyone explain what's happening and,
 if possible where the fix might lie in the new atomics code for Sparc? I'm not too sure what to do with this right now. I'll open a bug if this turns out to be a genuine bug, but right now, I'm not sure it is.
<div><br>
</div>
<div>The code aborts on the test, which is a failure.<br>
<div><br>
</div>
<div>
<div>#include <stdio.h></div>
<div>extern void abort(void);</div>
<div><br>
</div>
<div>char v = 0;</div>
<div>char expected = 0;</div>
<div>char max = ~0;</div>
<div><br>
</div>
<div>#define STRONG 0</div>
<div><br>
</div>
<div>int main ()</div>
<div>{</div>
<div>  __atomic_compare_exchange_n (&v, &expected, max, STRONG , __ATOMIC_RELAXED, __ATOMIC_RELAXED);</div>
<div>  __atomic_compare_exchange_n (&v, &expected, 0, STRONG , __ATOMIC_ACQUIRE, __ATOMIC_RELAXED);</div>
<div>  if (!__atomic_compare_exchange_n (&v, &expected, 0, STRONG , __ATOMIC_RELEASE, __ATOMIC_ACQUIRE)) </div>
<div>  {</div>
<div>    printf ("Error: Values for v=%d, expected=%d\n", (int) v, (int) expected);</div>
<div>    abort ();</div>
<div>  }</div>
<div><br>
</div>
<div>  return 0;</div>
<div>}</div>
</div>
<div><br>
</div>
</div>
</div>
</div>

<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div></div>