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

    <tr>
        <th>Summary</th>
        <td>
            [InstCombine] ninf should not be preserved
        </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/GNeZKU
```
; bin/opt -passes=instcombine test.ll -S
define float @select_fpclass_fadd(i1 %cond, float nofpclass(nan) %A, float %B) {
  %C = fadd float %A, %B
  %D = select ninf i1 %cond, float %C, float %A
  ret float %D
}
```
```
=>
define float @select_fpclass_fadd(i1 %cond, float nofpclass(3) %A, float %B) {
#0:
  %C = select ninf i1 %cond, float %B, float -0.000000
  %D = fadd float nofpclass(3) %A, %C
  ret float %D
}
Transformation doesn't verify!

ERROR: Target is more poisonous than source

Example:
i1 %cond = #x1 (1)
float nofpclass(3) %A = #xff800000 (-oo)
float %B = #x7f800000 (+oo)

Source:
float %C = #xffc00000 (QNaN)
float %D = #xffc00000 (QNaN)

Target:
float %C = poison
float %D = poison
Source value: #xffc00000 (QNaN)
Target value: poison
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyslEGP4zYPhn8NfRESKFScxAcfnPH6w4cCU3R2e-llIdt0okKWDElOZ-bXF3JcJ9luZ3toECAQ85J89Zim9F6dDFEO6REQ29C8vr_9AYiQlokcw9m6fA4mtW3f8hcanG3HhhyIgp1DGDyIArACrKRWF8K11pd-bd0JsGoIsHoHrP73TL_99CvwAnZ8_vICxJHVygBWdghsNUjvyYMolfGhsX2tDLFAPqy1ZqvPwIuWuhjrtJWBwZZ70tSEr93QaOn91062LeBBbRhg2ljTAj7NYmNnEeDBSAOYRU1xEwBGABmD_RF4weL5iYEoWSx600wZk3YWlZPoaoQZZTr2vfax2sOpmPIdhVuojET25beMHniVID79ZxzEjygACh4f7gOPf3HV4-204ms-fR553UH9R0cTsw8ofXHS-M66XgZlDWsteQO4D-xCTnVvgJso5cWnl5efX-KwfpHuRIEpz3rriA1WeWvs6Fk4S8O8HV1Dc8qr7AdN17vfLjlZBxSvMXLYAGbAiw9usei77jBBiGkra-8TI65Ft7_TAR7_UgIvPl_dTYZuI3XXoFkSf3mWz990KH8gjDQnON9tcAX193pL_GqOXaQeo8UPGs2PYFEuJZYxT9pctJnIZEL5Zp9mIuPpQSTnXIgOu7brKJWHlFpZ07aRqRCIWXPYIU9UjhzTDefI92KHYi2atJWtPOw3uyzNkGDLqZdKLwsqUd6PlG92m53YJlrWpP28CHvlG9sPSk_DFfchPgFizARR3C2o5a8JjjKn1WCVCUv4RIacDNSy-o114_s7uXm7ujxWW9XjycOWa-WDvzkLKuhpKf_f-PA0t0rL62vnz3bULTM2sJrY4MiTu1CbjE7njxv5pMJ5rNeN7QGryfz1ZzU4-zs1AbCaGHjAasZwyfHPAAAA___gN8h1">