<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/115643>115643</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[x86] Deferenced operands partially don't work in GCC inline assembly (with Intel syntax)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
TheComputerGuy96
</td>
</tr>
</table>
<pre>
This is a documented GCC feature that partially doesn't work with Clang:
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Output-Operands
https://www.felixcloutier.com/documents/gcc-asm.html#puts
Here's a Godbolt example of this behavior: https://godbolt.org/z/v7q7oso75 (as you can see GCC has no issues compiling and running the example while Clang doesn't even compile it)
Using a `r` constraint would work here (but that's still a difference in behavior)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsk8uSmzoQhp9GbLrsEsIYs2DhYx_mnNVsJg8gUGMpERKRWr7k6VNgkplMZcOlqG76__qTjNFcHGLDyn9Yec5kIu1D86bx5McpEYaX9Kj3WefVo3nTJoKJIEH5Po3oCBW8nE4woKQUEEhLgkkGMtLaByiP0TFREdx8-AY3QxpOVroLK46Mnxk_aqIpzm-iZaK99P324tLWhwsTrXfWOFS-j89PTLT_3gmdQrU5xnGrabRMFK-JpkSb1wmDdCr-re_tdtsOaM29tz6RwbDt_chE-yvF-oONfO86JVpbPa__YUAmqjn7i1edtwR4l-NkEfwANIPpUMur8YEVR_iU61mx5vrBRHutvlc--qoEJg4ywsMn6KWDiLgA1TKC82BiTBih9-NkrHEXkE5BSM7Nz6Tx9ww3bSw-2X6gjld0azGCISbqj5G-xKUjsD0PbM-h9y5SkMbN60pWPZemMeA8ZJdoWe8CIZKxdtbADAMGdD2Cce8ARJ2pplB1UcsMm7wqclHwgleZbuTAueSHSh2wqOtdWRVlJbqDyutdl_dDlZlGcLHL85zzOj-IatvLvuwOg1I1ouC7ge04jtLYrbXXcUaaLZSaPC_3uyKzskMbF52FcHh7MmRCzHaHZi7adOkS2Y5bEym-tyFDdjkH98OelWc445pNgV_l-sPtD2Ybt2zNLMaCjBHHzj5mbIvz_ztCC_HhSN5nOCnY5pMhhnTqVi3nidbbZgr-K_bERPt0gYl2DXptxM8AAAD__2YGO70">