<html>
<head>
<base href="https://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - unsupported call to function _Z14atomic_cmpxchgPU3AS1Vjjj"
href="https://llvm.org/bugs/show_bug.cgi?id=26926">26926</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>unsupported call to function _Z14atomic_cmpxchgPU3AS1Vjjj
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>OpenCL
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>rivanvx@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>When trying to compile an OpenCL kernel using atomic_cmpxchg() (e.g. one used
in GROMACS [1]), one gets the following error:
<unknown>:0:0: in function nbnxn_kernel_ElecEw_VdwLJ_F_opencl void (i32,
%struct.cl_nbparam_params*, <4 x float> addrspace(1)*, float addrspace(1)*,
float addrspace(1)*, float addrspace(1)*, float addrspace(1)*, i32
addrspace(1)*, float addrspace(1)*, float addrspace(2)*, float addrspace(2)*,
float addrspace(2)*, %struct.nbnxn_sci_t addrspace(1)*, %struct.nbnxn_cj4_t
addrspace(1)*, %struct.nbnxn_excl_t addrspace(1)*, i32, <4 x float>
addrspace(3)*, float addrspace(1)*): unsupported call to function
_Z14atomic_cmpxchgPU3AS1Vjjj
This is a regression. I bisected it down to the following commit:
commit a1ba3c7ed29f02fe3806b662cb8d8201d8e918a2
Author: John McCall <<a href="mailto:rjmccall@apple.com">rjmccall@apple.com</a>>
Date: Tue Mar 1 22:18:03 2016 +0000
Mangle extended qualifiers in the proper order and mangle the
ARC ownership-convention function type modifications.
According to the Itanium ABI, vendor extended qualifiers are
supposed to be mangled in reverse-alphabetical order before
any CVR qualifiers. The ARC function type conventions are
plausibly order-significant (they are associated with the
function type), which permits us to ignore the need to correctly
inter-order them with any other vendor qualifiers on the parameter
and return types.
Implementing these rules correctly is technically an ABI break.
Apple is comfortable with the risk of incompatibility here for
the ARC features, and I believe that address-space qualification
is still uncommon enough to allow us to adopt the conforming
rule without serious risk. Still, targets which make heavy
use of address space qualification may want to revert to the
non-conforming order.
git-svn-id: <a href="https://llvm.org/svn/llvm-project/cfe/trunk@262414">https://llvm.org/svn/llvm-project/cfe/trunk@262414</a>
91177308-0d34-0410-b5e6-96231b3b80d8
[1] <a href="http://www.gromacs.org/">http://www.gromacs.org/</a></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>