<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/82151>82151</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
ABI mismatch for 128 byte vectors on x86_64 vs GCC
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
pinskia
</td>
</tr>
</table>
<pre>
Take:
```
using v [[gnu::vector_size(128)]] = char;
auto f(v* p) noexcept
{
return *p;
}
```
GCC returns via memory while clang/LLVM returns via %zmm0/%zmm1 .
Corresponding GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 .
I think GCC is correct here but I am not 100% sure about the x86_64 ABI definition.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsksuOnDwQhZ-m2JQG-QINvWBBD-LXSPPvomxHxhhwBmzkS8_l6SPTPYkSRUKA5TrfqWOX8F7PRqkGyguUXSZiWKxrdm38qxbZYMeP5pt4VcBbIB2QFk7k_hzL6LWZ8YqH_DKbmAp5e1UyWPfi9acCVlNWAztD2UHZIfAO5SIc8MsNIWKwOAGrr8Ba3IGd0Vj1LtUe7pbVvRIR0akQnUFg7f6LAFX3z-Zu7_8eH-8qj1ctcFObdR_4tuhVoVyFmYH1z8_f__-jClj5uW0EWH_7o5jfcI_WOeV3a8aUPMGHOANvcQlh9yl-kvSzlPlsYm5dwg9x_tTrKoD1frFvL0Occzlr4L0egXeU8nNVfzk8YVi0eT3Y2qNMhjLgopzCIQZ8QrGhsQEpIcBK9NEpFIONAcOi8L0-vZwKbC9POKpJGx20NXk2Nnw887PIVEMrUjNe1WWRLc1pGCdR1sM0ElVxUQgqzjXlvJDTOPLxlOmGEVYQRmty4qSk-cQmRYfqNE6k4OMkoSBqE3rN1_W6pcCZ9j6qpma0pNkqBrX6Y74YM-oNj01gLI2ba5LmYYizh4Ks2gf_mxJ0WFWTcmzabyLIBSfrkLIah4-g8DZkHq35ynz16dCy6Nbmr9vQYYlDLu0GrE8G98_D7uwPJQOw_mjLA-uPtn8GAAD__8UD7_U">