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

    <tr>
        <th>Summary</th>
        <td>
            [InstCombine] fcmp is incorrectly inverted
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            miscompilation,
            llvm:instcombine,
            floating-point,
            generated by fuzzer
      </td>
    </tr>

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

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

<pre>
    Reproducer: https://alive2.llvm.org/ce/z/yVw9wM
```
define float @src(float %x) {
 %cmp = fcmp olt float %x, 0.000000e+00
  %sel = select nnan nsz i1 %cmp, float %x, float -0.000000e+00
  ret float %sel
}

define float @tgt(float %x) {
  %.inv = fcmp oge float %x, 0.000000e+00
  %sel1 = select i1 %.inv, float -0.000000e+00, float %x
  ret float %sel1
}
```
```
----------------------------------------
define float @src(float %x) {
#0:
  %cmp = fcmp olt float %x, 0.000000
  %sel = select nnan nsz i1 %cmp, float %x, float -0.000000
  ret float %sel
}
=>
define float @tgt(float %x) {
#0:
  %.inv = fcmp oge float %x, 0.000000
  %sel1 = select i1 %.inv, float -0.000000, float %x
  ret float %sel1
}
Transformation doesn't verify!

ERROR: Value mismatch

Example:
float %x = #x7f800002 (SNaN)

Source:
i1 %cmp = #x0 (0)
float %sel = #x80000000 (-0.0)

Target:
i1 %.inv = #x0 (0)
float %sel1 = #x7f800002 (SNaN)
Source value: #x80000000 (-0.0)
Target value: #x7f800002 (SNaN)
```

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVU2PozgQ_TXFxUpkFyGEA4d090Taw85KPaO5O6YgXhkT2Sbdya9fGRBN707vpFeLooDtquf36vlDeq8bS1RC9gCIVVCvt-sLIEL2lMg-nDpXTp3Jsauu5TOdXVf1ihyke3YK4ewh3QMeAA_S6Avh2phLu-5cA3hQBHi4AR6uP16Kl9-B72HLpx_fV1RrS6w2nQwMNtw7Bbibmpi9AhYM8gfg-9hU7ZlB-sTq-NGZwJaBj4yv-fAQ4AOP6CwOeTJDkidDKjBrpWXW35gWE2RMfQ80tlY_wXO0mNSTiXLyp_j_Ty2hCR9pie21tpeFmobuVSOWckYVEetj4u_1_UyGeNOxMGf5vbrz-ZSngCmPS2fSdqe9_5-xv7A0fYL0y6eM_Zugey3-T-Z-ytbvTlpfd66VQXeWVR15C5gHdiGn6yugGNfwl-fnP57jtv4hTU-s1b6VQZ2mwVfZng2NAt-mHhgDpq95vYvEkAHuvn2VXwGLMfFb1zs15c3uzGk8xvMxeMl-DtiNgoe4KH_G_S5dQ2GJO1f834DFLxiPdNklliDW4mMOI4H3kR9UYbGXkqpMqyItZEKlyDcFCrHbFsmpzIVC3AiijdzidpfmeSa2qSoKEts0y3aJLpFjxrd8K1AIXqyVorzeZKLIj-KYiho2nFqpzXwCJ9r7nkqxSQWmiZFHMn466VvtVdeetRnWRDzw8REQYyake219UF171JbmoaGI2jarc6dtmLsbsuRkoIodr6zubzdy0_Xhyoi2OvaNhw032gf_xizoYIZb5zfrw-M0VTZtFu2ZtqpzjlQwV6bthVygKumdKd9fOY0Op_64Vl0LeBjIj6_V2XV_kgqAh6EGHvAwleFS4l8BAAD___kI8ks">