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

    <tr>
        <th>Summary</th>
        <td>
            Wrong simplification of nested `select` using an implied condition
        </td>
    </tr>

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

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

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

<pre>
    https://github.com/llvm/llvm-project/blob/1ceccbb0dd9d8539fec2213566fe6cc2a05b7993/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp#L2785-L2798

```llvm
----------------------------------------
define float @fmin_fmin_zero_mismatch.2(float %x) {
#0:
  %cmp1 = fcmp olt float %x, -0.000000
  %#1 = fmul float %x, 1.000000
  %min1 = select i1 %cmp1, float %#1, float 0.000000
  %cmp2 = fcmp olt float %min1, 0.000000
  %min2 = select i1 %cmp2, float %min1, float 0.000000
  ret float %min2
}
=>
define float @fmin_fmin_zero_mismatch.2(float %x) {
#0:
  %cmp1 = fcmp olt float %x, 0.000000
  %min2 = select i1 %cmp1, float %x, float 0.000000
  ret float %min2
}
Transformation doesn't verify!

ERROR: Value mismatch

Example:
float %x = undef

Source:
i1 %cmp1 = #x0 (0)      [based on undef value]
float %#1 = #x00000000 (+0.0)   [based on undef value]
float %min1 = #x00000000 (+0.0)
i1 %cmp2 = #x0 (0)
float %min2 = #x00000000 (+0.0)

Target:
i1 %cmp1 = #x1 (1)
float %min2 = #x7f801090 (SNaN)
Source value: #x00000000 (+0.0)
Target value: #x7f801090 (SNaN)

Summary:
  0 correct transformations
  1 incorrect transformations
  0 failed-to-prove transformations
  0 Alive2 errors
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEVU2P4ygQ_TXkghJB4c-DD-nJRFppNCt1r3aPI4zLCS0MFuBs9_76lR3nqz-2e_YyKHJs_Oq9egW4ZAh6ZxErkt6RdLOQQ9w7X9XO7h4H-7ioXfNc7WPsAxFrAlsC252O-6FeKdcR2BpzOP0te-8eUUUC29q4msCWK1SqrlnTlE2RirJFBcBFmmUtZkqBZGmdl6W44tFj3B9e2tA63wUC299siF9cV2uLt08PaFDFlep7AuIb5EW6_AZ5WRC2IWw9XzN2_E3809Tyk-OIbrDVFmlrnIyUJKzttP0xXf5B7350OnQyqv0KCBQzCNInAiUl-d2cAwg2Fm96oON71fWcErGhrep66kyk16Ff6JKt2DSuYgiIOaYbzAs8fw3vtD3Cw1QlqvlJeAw4h4-sl4k3ZFXXwzupjhJj7BtRnbbwpjrcqJ8Y3lb3eCsGcznzzXwjNkR8_YXL9DPGb8v-9P9dn8-GjNpZ2jgMlkAe6QG9bp8J8Ov9__X-_vd7Itb0T2kGpKc63ECeZNcbPFu_JDkZGWyD7TX-wQ1eXeAXhxOcgHhilEDBxuJOg6R3tQzYUGePbPQwJkPSzQvB8xafSOYxchG4Y6uZ8NNs5xPwLtsLA_DawGtK-AzlvFLS7zD-V6HGmYJ_oJO3BeOsnHQevsvvZ_hxIWb7Yv1RUsd0buHvcs8KQ9dJ_3x1KhhVzvtxZ8ebfRhOAE61_QDCaCu1wWYZ3dgyDvg-cG30AYGi986HF1_0RVOJphSlXGDFc8F4JrKELfZViqoEVai2RFStTJskq3nCkyTL00aV-UJXwCDhDErGGUvYKs15wWsBomlzgUlLEoad1GY1do2V87uFDmHAinNRFsXCyBpNmDomgMW_6fSWAIwN1FdTL6yHXSAJMzrEcKGJOhqs_vLO7mjQXW90q9XxILuWWgwRG0oydvx6kIzRIWi7o9LSCY0NVc42eoxYDN78fGeeUh3b6uzlUMG_AQAA__-eLEBV">