<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122093>122093</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang] Intel Assembly Bug (Mishandle RIP-relative Addressing)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
witbring
</td>
</tr>
</table>
<pre>
I am reporting another assembly bug found during research.
The tests were conducted using the latest version (Clang 19.1.0)
The issue occurs in the same way with previous versions as well.
When register names are used in RIP-relative addressing, Clang converts them register indirect addressing.
1. Example Code
```
.intel_syntax noprefix
.data
rax:
xmm0:
ymm0:
zmm0:
.long 0
.text
test:
mov edx, DWORD PTR [rip+rax]
mov edx, DWORD PTR [rip+xmm0]
mov edx, DWORD PTR [rip+ymm0]
mov edx, DWORD PTR [rip+zmm0]
```
2. Compilation Command
```
clang -c test.s
```
3. Compiled Binary Output
```
0000000000000000 <test>:
0: 8b 14 05 00 00 00 00 mov edx,DWORD PTR [rax*1+0x0]
7: 8b 14 05 00 00 00 00 mov edx,DWORD PTR [rax*1+0x0]
e: 8b 14 05 00 00 00 00 mov edx,DWORD PTR [rax*1+0x0]
15: 8b 14 05 00 00 00 00 mov edx,DWORD PTR [rax*1+0x0]
```
This related bug can also be observed when we use any 32/64/128/256/512-bit register names.
This bug can also be reproduced on Godbolt:
https://godbolt.org/z/sM4d8onor
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVE-Po7gT_TTOpRRkDCThwIEkw099GM2o1dIcfzJ2NXhlbGSb_OlPvzJJd9Jpze4eJkKiFFe953pFPe696gxiRYotKfYLPoXeuuqoQuuU6RatlefqCfgADkfrgjIdcGNDjw649zi0-gzt1MGrnYwEOcUqcOiRO9EnQGj90iME9MHDER2CsEZOIqCEycfc0CNoHhPggM4ra4CwzU5z00FaJmlCCSuvMMr7CcEKMTkPysy1ng8IR36Gowo9jA4Pyk7-HcsDj7xaJ4TWhNa_ejTgsFM-oAPDB_TAHcLkUUbE56efS4eaB3VA4FI69PGWhO3gciVhzQFd8JF7uCEpI5VDEe5qroxpAt9OfBg1ws5KvPxJVvT60DpRJqD-vz-bwE9g7OjwVZ3igeSBE1o7fiJZrDoNA71E54_o7SOCRFvTAb0wJAFPgdA6Cns9B4DBHuILUJ5iS_tfP5738PPlGUixdWokbBvJiv1d-u9T5-t8yv1n6POX_N_nvn3k3ktFaM0S2NlhVHFE1sR44EZ-VVXM01qK-dNL_Feg7B0IJWyV4e4MP6YwTuErFn34Acl2F12_XaWNIwCATQtpDrQASm_PTZtLu5-75SfC6pSwLT3dxFn_WTj8o3Bp8e9w_w3rYSIvvfIwLx_K2VMEN8C1t9Ai2NajO6CEY9zg47yxwM0ZMkZYs8oJa1K2IaxhxYqwpkjZslXhYdWTO6JHAoejs3ISKMEa-J-VrdXXzelDGH0MWUNY012OEus6wpo3whr_PZcba6xbyCqTZVbyBVbpOltl2Ypm60Vf8VzIlchKgTQtmMhzXG9o_prmJW1TIV4XqmKUFTSlmzTNsmKdlGkhMGWUlhmuKLYkpzhwpROtD0PkXsxmWKWM0TJbaN6i9rOLM2bweLFKwlg0dVfFomU7dZ7kVCsf_A0mqKBn-5_9jRR7eIp-BPW7u2-nLjryd-V7bqTGzx5Z33lkuZicrh7UUqGf2kTYgbAmkl5fy9HZv1AEwpr5qn4e4NzLoWJ_BwAA___tevOI">