<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61640>61640</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Wrong code for inline assembly with `-masm=intel` 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>
          lhmouse
      </td>
    </tr>
</table>

<pre>
    Godbolt: https://gcc.godbolt.org/z/bn15EWhsq

```c++
using my_function = int (int, int);
extern my_function* my_fptr;

int
ptc_indirect_call(int a, int b)
  {
    return my_fptr(a, b);
  }

int
asm_indirect_call(int a, int b)
 {
    __asm__ ("jmp qword ptr [my_fptr@GOTPCREL]");
 __builtin_unreachable();
 }
```

```asm
ptc_indirect_call(int, int):                # @ptc_indirect_call(int, int)
        mov     rax, qword ptr [rip + my_fptr@GOTPCREL]
        mov     rax, qword ptr [rax]
        jmp rax                             # TAILCALL
asm_indirect_call(int, int): # @asm_indirect_call(int, int)

        jmp my_fptr@GOTPCREL
```

The inline asm statement gets compiled as a direct call and will jump to nonexecutable data.
(the at&t syntax however doesn't suffer from this issue.)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVFFv4jgQ_jWTl1FRcEiAhzxAWVYnVbrTqdI-RnYyIa4cO2tPCr1ff3KgLd1ld2tZtoH55vu-GWwZgj5YohLyLeS7RI7cOV-arndjoES55qX86hrlDEO2wY55CJBtQOxB7A91PTucf5w5fwCx_w_EXtl5_uVbF75DuoN0c1mL9DxrENs4p2_HoO0B-5eqHW3N2lmEbIfaMoJYacsg7nHa1pBdIHRi8vYaA2IzfRzYv0Wd1widDgPXlbaN9lRzVUtjzulRXghQRYopFBGW29cjoiceL3Qxv1hNEHWtKCJ2N2ll6D9N-4G1qiK0ilUAIZ76Ab8fnW9wYI-Qb1_VLNKvfz_-c__vlwfIdyDEB1VVpUZtWNtqtJ5k3UllaEp4FfSu_LU_N5smQ__bQl73aTJwPUBkCIv0z9A3-3H07nnavTzFkA_-vR4QxBZv1-HzaeTpp_hYay9PP3r4ydDj5q-H-83Dw28b_bEslzr8OfaqA9eybrj9deseO0JtjbaEMvQYWDL1ZBkPxAFr1w_aUIMyoMSzFoxaUNoGj9oYfBr7AdmhdZZOVI8c_z7YSJazC49YcUcoGUTBGF4syxN27kjP5LFxFCyIJWMY25Y8tt71yJ0OqEMYafbmM2nKrFlna5lQOS-W6zwrinyddGWb5cu2aFtVKDVPczFPW6Hm2aJd1ktFaZboUqQiSzORpfN8ma1ncrFqREGNrOdKrYWERUq91GZmzHMfH6hk4i6LebFIEyMVmTC9e0JYOp6FxVuU7xJfRsydGg8BFqnRgcN7FtZsqPzmnT1g7RrC1vn3YgfqlXnBo-YOoUjv-nh5sp22TAaKFJ3F06qoikUyelP-8KBq7kY1q10PYh_5Ltvd4N0T1QxiP6kMIPaTi_8DAAD__7sXsk4">