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

    <tr>
        <th>Summary</th>
        <td>
            Missed optimization: fold fcmp ord + select before fcmp one (x, C) into a single fcmp one (x, C)
        </td>
    </tr>

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

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

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

<pre>
    This is a follow-up issue of #142711
It seems having the last ```select``` instruction prevent the optimization.

```llvm
define double @src(double %arg0) {
  %2 = fcmp ord double %arg0, 0.000000e+00
  %3 = select i1 %2, double %arg0, double 0.000000e+00
  %4 = call double @llvm.fabs.f64(double %3)
  %5 = fcmp one double %4, 0x7FF0000000000000
  %6 = select i1 %5, double %3, double 0.000000e+00
  ret double %6
}

define double @tgt(double %arg0) {
  %2 = call double @llvm.fabs.f64(double %arg0)
  %3 = fcmp one double %2, 0x7FF0000000000000
  %4 = select i1 %3, double %arg0, double 0.000000e+00
 ret double %4
}
```

alive2: https://alive2.llvm.org/ce/z/G8UmjY
godbolt: https://godbolt.org/z/8sjT9P5TY

Found this pattern in
https://github.com/dtcxzyw/llvm-opt-benchmark/blob/013f9638352b38eb8f26daddafeeb0d87fc6510b/bench/typst-rs/optimized/4qskctz4kwc33g7b.ll
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVE1z4ygQ_TWtCxUXatDXQQcnKW3tYav2kD3MEURLJsFCK5Dz8eu3JNsTezybmlFxAfq1Xr_XtArB9gNRDdk9ZI-JmuPOT_WDGlpyziXam_f6aWcDs4Ep1nnn_OvdPDIbwkzMdwxQpBKLNAW-_TOyQLQPbKcOduhZ3BFzKkQGOT-uQI7a-H3L7BDiNLfR-oGNEx1oiCvKj9Hu7YdaLjbAt8s6g5w77IFvDXV2IGb8rB0xkDxMLWB53mOmpp4DVgyKe-BbthwhA_HIunY_Mj8Z9mPsA-Mbvn4EeM_5GSZW2JE7s-maaYm-xZ9Ofp5Grmla5dwF66WaTad02HS5vOIvAKszNLsgflE0ZnJl_VY0Db_8zrj8lnl2zVx8TXuieBGcLz4Uj0dDbgyIffw1A35ZglOGax9-ogJ-rYK8VUH8pn_XOshPHc5dedREOXsgBLFluxjHAGIL2AA2x_PNWqmfesCmJcDmA7D5o_xn__wN-Lb3RnsXb8GnixNwwZTh-an6O3v6dvxr4-fBsLg801HFSNPA7AB8-0MaG3ez3rR-D9iY2L59vL8CNgunOz_GO01Du9ur6QWw0c5rwIanoqtyUYoMtShJlx3mRhmjOiLNTVl0bZ6lfAld0YBNfB9DvJsCYHN6xGQAG_lveGnjh3x5bYXoC71xLjG1MJWoVEJ1WsgqTxErmexq1aVdyqUudcaVoryQmc4M6pK0pKxtE1sjx4znacoFykxuOFemK6SupEBKJYLktFfWfRc8WedVnUqRyypxSpML68xDHOj1OM0AcRmBU70qouc-LL1pQwyfaaKNjuq_bAhkrobU4lrnnfkcLoD355bT1PmJPhsXsHxbuu1heR12iJ4pFuzQu_-JSebJ1V-YuU7Ek5Pj5J-XEYvNWtTiw6nqQ43_BQAA__-xNcC-">