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

    <tr>
        <th>Summary</th>
        <td>
            An error cause by inline a asm-function
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            backend:RISC-V
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ZCBing
      </td>
    </tr>
</table>

<pre>
    I try to compile with "clang --target=riscv64 -d -O1 bug.c"
```
static inline int syscall(int nr, int rc)
{
    asm volatile("addi a0, %0, 0" :: "r"(nr) );
    asm volatile("addi a1, %0, 0" :: "r"(rc) );
    asm volatile("ecall");

    return 0;
}
int main()
{
    int nr = 0, rc = CORE_ID();

    if (rc != 0)
        goto out;

    printf("xxx\n");
    rc = 88;

out:
    syscall(nr, rc);

    return 0;
}
```
and I get asm with objdump
```
0000000000000002 <main>:
       2: 41 11         addi    sp, sp, -16
       4: 06 e4         sd      ra, 8(sp)
       6: 97 00 00 00   auipc   ra, 0
       a: e7 80 00 00   jalr    ra
       e: 01 e1         bnez    a0, 0xe <main+0xc>
      10: 37 05 00 00   lui     a0, 0
      14: 13 05 05 00   mv      a0, a0
      18: 97 00 00 00   auipc   ra, 0
      1c: e7 80 00 00   jalr    ra
      20: 13 05 80 05   addi    a0, zero, 88

0000000000000024 <.LBB0_2>:
      24: 01 45         mv      a0, zero
      26: aa 85         mv      a1, a0
      28: 73 00 00 00   ecall
      2c: 01 45         mv      a0, zero
      2e: a2 60         ld      ra, 8(sp)
      30: 41 01         addi    sp, sp, 16
      32: 82 80         ret
```
notice that 
```
      24: 01 45         mv      a0, zero
      26: aa 85         mv      a1, a0
      28: 73 00 00 00   ecall
```
before ecall  a0 and a1 are both zero, this is an obvious mistake.





</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVkuP2yAQ_jXOZZQI4_fBh02ylVaqtFIr9dBLhTFO2BI7Apxm--s74DzsbNTu3oqQgTCPb74ZIFVXv5ZPYPUr2A54t9tLJeCXtFsIKOWKtRuYzy3TG2GDaK2l4Yc0hnkN8-cQqn6z4CgXkHVAHoKUnLpfGsus5CBbJVuBgwXzajhTKqC5W7U6oCv_u0YbxclGthwmgI2ZHRw6hWaUQCV0xOpaAiNOMaCJH_FDIYgesDvI2sGhuTNegDMbvcNg-G-DHuM7DIohQjqWvMprYXvdoovLVrYeJo6HHZOtt3KPjIEyBLYGD1NzP189f3n88bQ-qb31KBvw6PEbnnSL665rmw4z3_X2jvJeo9dmCOx4PAbJqr0JzQc1IMnzGwve5sjaNf1D6oe0f4SkmwpjbQ1PgJXp8-CLtqte6n63vytOps0leeUpjx4nOLFRl_w4hDA8swS-UlwUe4d9-M7DdKIWOzWSgogvaqYeRs2cAhKZO9VpClKnVmRAyKmjt17u-UWNTMSZExcZ5FfxF6b0yctYUng8IYhrGFUrfnsjQ60fxYUFuiRH7rgYWQiJsxAhtOTiS_USRhYm4p6AMPLiySC-O8BInE3l8w9FHvL3Rk7JFYgTTkYJHID8FrrzGcnH5XdTIbEjZ_F5uSQ_6NsqofGJ3ji50DuN1jsZa_hMMwb5HY3wLT_U85NFY36GC2YsxD8Mw9cFo5CSi4b6d51G5HQqyN9PxfRQRP4s5dTl4dzwhN89oW2HL4YAu2UW7gr8J8TfoKpE02kxCDgE4C4mFgLDH6sOb6VzsdmtNICdtXhRHWTXG9hJfCd_isW4Ct9-Z3UZ1UVUsJmVVonyoQWhdaeBs96gk9fzM8vcVThv-pZb2bWzXqtya-3euNKln7Bv8JbsqwW-9LhQ6nAe5nvdvQhucSmN6YXBSRLTlM62JS8EI0WTZxGCyHhTJSyLq4wVjNOoqdKZYpVQpgySJT4P-KfAPxLuRaUV4z9FW6P7L09fV_NvbidZz2RJCaUkIjkONEoXTZIWNIwLWjQRZ6IOYiLwVlILh23R6c1Mlx4mWje4qZA2c91kxshNK4SHgPZZb7edLr-vlrLdzHxApY_mD9iPNR4">