<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55381>55381</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Spaceship operator<=> fails on ARM but compiles on x86-64
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
reneruhr
</td>
</tr>
</table>
<pre>
The following code compiles on clang 11 x86 but not on arm:
```
template <class T>
struct A{
std::array<T,2> data_;
constexpr friend auto operator<=>(const A<T>& a, const A<T>& b)
{
return ( a.data_ <=> b.data_ );
}
};
```
Error message:
```
<source>:12:27: error: invalid operands to binary expression ('const std::array<int, 2>' and 'const std::array<int, 2>')
return ( a.data_ <=> b.data_ );
```
See [compiler explorer](https://www.godbolt.org/z/W4K5f5hxj).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydU01vnDAQ_TXmMgoCe1ngwGGTTS5VL22kHiuDZ8GR10a2ySb99R2z2earh6rIGHs-3jw_PL1Tz939hHBwxriTtiMMTiFNx1kbDOAsDEaSuSzhqdlCv0SwLia79EcmdqzYs-Iyb4uXsW4jHmcjIwITNwQSAtwzcXv2heiXIcKO1ddnA9ATokqIYie9l8-Udc_4DaccUDLKn0y8iR2cDRGfZg8Hr9EqkEt04Gb0MjpPuUzsUzXerJFUKcElwxYkwcJnc894-1rgHbP0eIyLt-TgDch8ZQR_6kB_sRDGW56s3r-IQ4uL44NQ5_nWe-fhiCHIEV-V_RAqboJb_ICJs9iVpM6O1zQBpvS00PZRGq3OWlgVgHTptZX-GZJehK_p79EpGK_PInzSXduYJOKrMDUQCvxr8DsN_0-2v6rzHekeVdcvF9Onoxjn0bNqT8hTjHNItPgdjdPplI9O9c7E3PmRLL_o_bH5Uh2q6emBauWZ6oRqRSuzqKPB7vssBwyTnj9fIThIbdZO2H37ujbA2-6gprjabrLFm-49iVHHaelziqWNMY-Xz9Xs3QMOpNmdDmHBQIuqEk2ZTR2v8KDUVlRDqw4lb4dWVE3N-Vb0tdy0fWZkjyZ0JATj3OIJVghakwyZ7njBeVGVZVlUhSjzIWU1Tb9RVdXyEtmmwCMdJk88kjKZ71ZK_TIGchodYnh1Usfq0SKu5QifOmxyvvNo0S-Tz9ba3cr9N3TpPmk">