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

    <tr>
        <th>Summary</th>
        <td>
            Missed optimization: fold away neutral fadd 0.0 before fabs
        </td>
    </tr>

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

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

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

<pre>
    ```
define double @src(double %arg0, float %arg1) {
  %v2 = fadd float %arg1, 0.000000e+00
  %v3 = call noundef float @llvm.fabs.f32(float %v2)
  %v4 = fpext float %v3 to double
  %v5 = fcmp olt double %arg0, %v4
  %v6 = select i1 %v5, double %v4, double %arg0
  ret double %v6
}

define double @tgt(double %arg0, float %arg1) {
  %v2 = call noundef float @llvm.fabs.f32(float %arg1)
  %v3 = fpext float %v2 to double
  %v4 = fcmp olt double %arg0, %v3
  %v5 = select i1 %v4, double %v3, double %arg0
  ret double %v5
}
```

Alive2: https://alive2.llvm.org/ce/z/WyK7Q9
Godbolt: https://godbolt.org/z/n36zdahPM

Pattern found in https://github.com/dtcxzyw/llvm-opt-benchmark/blob/main/bench/opencv/optimized/ts_func.ll
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyclEFv6ygUhX_N9QbVwhfjJAsv0laexahSZzXLETbXCfMIRAa7TX79E06atGn11PcsyzJwz7mcTwgVgtk4ohrkPcjHTI1x64f6-Bpl1np9qKHi55evNfXGEdN-bC0xKHkYOsDl2xilGjYc8IH11qt4nigAVwwW98DXLE1NyEA8sl5pfVv3wHjO54cA7zm_SMQs6ZS1zPnRaerfpCW3dtrlvWpD3gsEXF48JwRcXSzKU9c9vcZr20mw6M95LpXyVNnt9szbyD6nm-0u5dVcHshSF5kpThap7Cqcyo_j2SjpB3rvP1XA17B4TN8vYMdN_FPYv0nubHSD_5YdfsGu_A47cYP6I7sbVpP4Hjt5ZffuxAJfr62ZCEGs2TbGfQCxBmwAGzXP5zMEP2wAm44AmyNg8-_h78U_Kf5fXrfexs_izWnhLEwaJ6qjVtvnp1PXZxUjDY71CToz7lZv4nZs887vABsdu9fj4QWwSZu58_t415Lrtjs1_ABsWutbwGanjEujtALY-D25bpp_otmZI2nAJob_-tF1ubWZroVeiZXKqC4WUsqqLFBm27rSqiK1kMVSCqkWi0rpYtkKvhJl3xYlZqZGjpIvixXnJXKZq74lXMqqoFL3pVpByWmnjL2gy0wII9WFLFEsM6tasmG-TxAdvbB5FRDT9TLUc8R23IR0AE2I4WoTTbRUP5kQSLNzLBWNd4l_761m6kUdmKMxDsqebhCec9ZS7wdi6SRn42DrX6BOvd447wf_P3URsJl3GACbc4Spxp8BAAD___aMhtQ">