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

    <tr>
        <th>Summary</th>
        <td>
            Why GCC can optimize call strcmp , but Clang does not ?
        </td>
    </tr>

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

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

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

<pre>
    See result of https://godbolt.org/z/114scaYs1
```

#include <string.h>
#include <stdio.h>

 int parse(const char* ptr)
{
    if ( ::strcmp(ptr, "s"))
        return 42;

    if ( ::strcmp(ptr, "ms"))
 return 420;
    
    if  ( ::strcmp(ptr, "ns"))
        return 12;

    if ( ::strcmp(ptr, "us"))
        return 45;

 if ( ::strcmp(ptr, "m"))
        return 0;

    if  (::strcmp(ptr, "h"))
        return 5;

    return -1;
}

int main()
{
    int i = parse("s");

    return i;
}

```

GCC produced assembler code doesn't have call strcmp , but Clang call strcmp every time.

Why clang can't optimize call strcmp with compile time string literal ?

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyclE9v4ywQxj8Nvowa2YP_HnxIk9fvB9jDao8YT2J2MViAW7WffoWTbZM2bVdrWVjWDL95eBgQ3qujIWpZcc-KfSKWMFrXOqEGMnpRv4Q5Jr0dntpvRODILzqAPcAYwuwZ3zLsGHZHO_RWh411R4bdM8Muy3IvxQ-fsXTP0i0r0_N7-j2NyJWRehkIGN_54JQ5bkbG_7sdHpS9jK4jKBNgFs4Tw1pa4wPIUTiGW5iDY9ick6v7cz4AqAMwrCGK51sfnJxmhvWavgOG6BlinPlnMpwfR2FxBnJk_P5Kw18wp3fQF1r6gougK-TnTPOF0OxfhC5frb54C_1y6Z8D09siI_ND5Pg58p3E19Bd9hqr9pdJsZEmoUyse7ttTAAFjO9f-u2iVz4sqD6qd_NE_L_bwezssEgaQHhPU6_JgbQDwWDJG4ZVgFE8EEihNZy8gWhLvwTYaWGOVxF6IPcEQU20uazzfXwCeU4-Me0c1KSer7mPKowg7TQrTSsETocUtArkhAbGuxMwGVo-NLwRCbVZWVVYlGmeJWObZmVf9GnVyKquM8GzQ93Uh3LAQ1EXecYT1WKKPEXMsxIrzDYiPwhquETZVHgoBctTmoTSG60fpnjDJMr7hdoybaoy0aIn7dfbC9HQI6zBuCvFPnFtnHPXL0fP8lQrH_wrJaigqY1ORNelMLc9uPY2bgIYG-LKk8Xp9s09qMK49BtpJ4ZdrHT-3M3O_iQZGHarPs-wW_X_DgAA__8vsYhP">