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

    <tr>
        <th>Summary</th>
        <td>
            Clobber between alloca and stack arg
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:X86,
            miscompilation
      </td>
    </tr>

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

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

<pre>
    ```llvm
define i32 @test(ptr %a0, ptr %a1, ptr %a2, ptr %a3, ptr %a4, ptr %a5, i128 %x) {
  %alloca = alloca i128
  store i128 %x, ptr %alloca
  store i128 0, ptr %alloca
  %cmp = icmp eq i128 %x, -1
  br i1 %cmp, label %if, label %else
if:
  ret i32 0
else:
  ret i32 1
}
```
Results in:
```asm
        movq    8(%rsp), %rax
        xorps   %xmm0, %xmm0
        movaps  %xmm0, 8(%rsp)
        andq    16(%rsp), %rax
        cmpq    $-1, %rax
        je      .LBB0_1
# %bb.2:                                # %else
        movl    $1, %eax
        retq
.LBB0_1:                                # %if
        xorl    %eax, %eax
        retq
```

The final argument is passed in `8(%rsp)` and `16(%rsp)`. The zero store writes 128 bits to `8(%rsp)`, clobbering the second half of the argument before it is read.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVE1z5CYU_DVPF8oq9NDnQQd7p-aUUyqH3FJIepphjYQMzK6TX58CSbbGceJMTUk0NN3QiCedU5eZqIXiCYpTIm_-amw7q2fVJ50Z_myh5Otf6x8T8BPwx4FGNRNTAhnk3JPzgPXiLQMsJAf8xnaQHQEegTiC_AiKAFSGdUCvgA2D6mk1ZpGgteklA3FiWzOQd4LzxtJx-rtwJH_C4_9KAiz6aYlWKjTo5V75IduZnWUq2_hhRMuOdMBqvIOkHa1z1AjicZ9uycc4-doRWf8c3dygOm2N_WhW-Cu5m_aOqflt7htDuu3sgDeT-fECvKkBa8DCugWwCYsMQL6-0V6NXRzwJmx2mvjGiM2DkvzIuZfdmXIegmdWfmHaT8tL1Msfsk-GvxPwJv3l6Yn_sYeBIpC6LkUQj-yL38Z-P4V1E3q13B3p4GjJv6xgt_3fLmo8Zrl6RO3_cvlwpuvztyuxUc1SM2kvt4lmz5Rji3SOBqZmBiW_j73kTM5D6P-QeMlTFtT-Imu2O_DTKk-Ohe-6U94xbz7TC4vutek6smq-MH8l5qg388CuUo_MjLHrbXkdjfF-xYVakkOaDK0YGtHIhNqsrCtRYI6YXFuOedVlQymauhwEDlUmuBjqoamzJu9lkagWOQpeYpYJzjNMK1FUTdfnY12Nos8KyDlNUuk0lKjU2EuinLtRW4pc8CTePRcLHGIn-2eaBxCPv9clYChJgDgp15tpUVp6ZebQXZwS2wa5h-52cZBzrZx37wZeeU3ttzUQ1pH_STTv9ShE77zsn0Meyc3q9ur94sKtxDPg-aL89dalvZkAz7Gsrq-HxZrv1HvAc9yAAzzHPfwdAAD__3C8ikc">