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

    <tr>
        <th>Summary</th>
        <td>
            [X86][13 regression] Suboptimial i128 subtraction
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    ```c
typedef unsigned __int128 u128;

u128 sub(u128 x, u128 y) {
    return x - y;
}
```

is
```asm
        sub     rax, rdx
        sbb     rsi, 0
        sub     rsi, rcx
```

should be
```asm
        sub     rax, rdx
        sbb     rsi, rcx
```


https://godbolt.org/z/c3x6qKz7K
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytUstu5CAQ_Bq4oIwwfmAOHJKM9pLjXvYWgcE2EWNmeSSefP1iPNmsRtqcgnBTTbWrS4B06sJBh_c5AHwE-D5ezlrpEaUlmGnRCj0_myVWpEcpB1A_7GV73LZQSBKQvsAVkMdShy6AMATotRrl4XVMfkErusvkXxl6vIIPG__Km3BDinD6FNxG7l1WL0prr9YbXl75YDYe_-fvnfXD-oWZMLtkFZL6mz193XWPc4znAOp7QH7kOTklnY0H56ecvedvqNfu99M7fYKaV11HmpYywqDitWI1EzCaaDUH7cOvvgPtMYOqzhcyeR2CcUveQj-TdOdoTkZYZK7XGr0YYuZh8pbfeDBxTvIwuFNOrH39WO7O3r3oIebUhJB0yKClLe3gzFnfkKxc0UaOaqwaopqqkrSSmnSSygZaIbUNm09AyKLfUJHIOBuEhhNMCGa4w6wluD8oIhlVVI5Mj23PFGiwPgljD5uP7XCg58WSTFPIpDUhhk9ShPLAy7Fs-iLF2Xk-zKMIEZbOvDj_A4-T3sI">