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

    <tr>
        <th>Summary</th>
        <td>
            [X86] Poor codegen for hand-written abs(char) function
        </td>
    </tr>

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

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

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

<pre>
    https://godbolt.org/z/86bj5z6ab
EDI value is copied to EAX and then to ECX but EDI itself is not used after that. Since it is caller-saved, ECX usage can be omitted, saving one MOV.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcUcuK3DAQ_Br50oyRpfHr4MNkZw05hAQCYa4tq21r0UiD1J4l-_XBTiCwJyGqurqrCnN2SyAaRP1F1NcCN15jGp6OAhcm2t_DyvzIQl-EGoUal2hN9FzGtAg1fgg1do15qz8aNEJehby8Xr_CE_1G4DJM8eHIAkd4vdwAgwVeKRz_lxuYjWGnO87k550fIsOWyQLOTAl4RS7hpwsTgeNDEL2ndMr4JCvUyyGzZVwIJgxgCOLdMf_FMj5dWCAGgm_ff5WFHbTtdY8FDVXT17KtZa-LdZDneVJt26Ax576V2nRzVc0ordJG274u3KCk0rKvOqWqSuty1tr0lbVEtpubVouzpDs6X3r_vO_RFC7njYamaStZeDTk8xGwUoHe4QCFUnveadhnTmZbsjhL7zLn_yrs2B_N3LpG1Ff4EWOCKVpaKMAcE6wY7Ok97ZYDoMlCddOKSage5i1M7GIotuQ_d-h43Uw5xbtQ477s33N6pPhGEws1HidmocbDwp8AAAD__338sE4">