<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/95241>95241</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang] Change register types.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
witbring
</td>
</tr>
</table>
<pre>
I discovered that Clang changes register types without any warning when processing invalid assembly code.
I believe Clang should more accurately verify assembly syntax.
```
.intel_syntax noprefix
Bug:
lar R11, R8W
movmskpd R9, XMM0
pmovmskb R10, MM2
tpause RDX
umwait RBP
```
```
Bug:
lar r11,r8
movmskpd r9d,xmm0
pmovmskb r10d,mm2
tpause edx
umwait ebp
```
You can reproduce the bug through godbolt.
https://godbolt.org/z/WofxMjWqG
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8k82OmzAUhZ_GbK4mwuYnYcGik4hqFpGqbGa6qgy-AU-NTf1DQp--gjCNmlZFCOR7j48_2T7cOdlqxJJkzyQ7RDz4ztjyIn1tpW6j2oipfAEhXWNGtCjAd9zDXnHdQtNx3aIDi610Hi34aUAHF-k7EzxwPcGFWy11C5cONQzWNOjcPJZ65EoK4M5hX6sJGiNwAyQ-kPjTC9SoJI64ruM6E5SA3lgE3jTBco9qghGtPE93Czdpz6-bm8cf3zxe32W4kdqj-naTgzaDxbO83nrPoSXJOg0Ut3CilLA9nHavaxEAejP27vsg4FTMvbfjMYbbc9cMN1ENJxrPouORrU0_8OAQToe3uzr0Fy49nJ6_3F0eqP9Z_AvXLrh2t5Z-k9pCELa_9v068c5naTy3-v6BD8W6JR9wWA__AftqAjRcg8XBGhEaBN8h1KEF31kT2g5aI2qj_Ho-nfeDm9lZRVj10TO2Jaz6SVj1as7X4_vrj8-RKBNRJAWPsKRbuqNFvmNJ1JVbmiWY7AouMp6LAmnDzoxTmtNtkW-xiGTJYpbGOWWUZUmabBIW5-k5wWyLeSowJ2mMPZdqo9TYz2tH0rmAZZGxlEaK16jcEgzGmvkiEsbmjNhy1j_VoXUkjZV03t0dvPRqSdNydUl2gP2SkoeQbKJgVfmwCdJ3od40piesmg3X39NgzTs2nrBq4XOEVTfEsWS_AgAA__8IkyW2">