<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/139041>139041</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Wrong `select (fcmp ...) (fadd ...)` folding to llvm max intrinsic
</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>
```llvm
define float @test_fcmp_ogt_fadd_select_rewrite_and_fastmath.2(float %in) {
%cmp1 = fcmp nnan ogt float %in, 0.000000e+00
%2 = fadd float %in, 1.000000e+00
%sel = select fast i1 %cmp1, float %2, float 1.000000e+00
ret float %sel
}
```
```
define float @test_fcmp_ogt_fadd_select_rewrite_and_fastmath(float %in) {
#0:
%cmp1 = fcmp nnan ogt float %in, 0.000000
%add = fadd float %in, 1.000000
%sel = select fast i1 %cmp1, float %add, float 1.000000
ret float %sel
}
=>
define float @test_fcmp_ogt_fadd_select_rewrite_and_fastmath(float %in) {
#0:
%sel = fmax nnan ninf nsz float %in, 0.000000
%add = fadd nnan ninf nsz float %sel, 1.000000
ret float %add
}
Transformation doesn't verify!
ERROR: Target is more poisonous than source
Example:
float %in = #xff800000 (-oo)
Source:
i1 %cmp1 = #x0 (0)
float %add = #xff800000 (-oo)
float %sel = #x00000000 (+0.0)
Target:
float %sel = poison
float %add = poison
Source value: #x00000000 (+0.0)
Target value: poison
Summary:
0 correct transformations
1 incorrect transformations
0 failed-to-prove transformations
0 Alive2 errors
```
While the alive2 site (https://alive2.llvm.org/ce/z/50KuQH) complains that it used approximation so it could not conclude,
I think it may have nothing to do with approximation.
Targeted Commit of Test: https://github.com/llvm/llvm-project/commit/a0c4876eede8e68de22dc5296b037556c7cca981
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8VU1v6zYQ_DX0ZRGBoqyvgw5O8owWPRRNA7yjQZEriSlFGiTlJO_XF5RsJ06aPKQFKhi2ZM6MdmapFfde9QaxIfk1yW9XfAqDdU1rTf8wmYdVa-VzQwq6fLQ-jIRuJHbKIHTa8gBkTQP6sOvEuN_ZPuw6LuXOo0YRdg4fnQq440buOu7DyMOQMMKqI5flyhBWAymvCd1A_EOM-xRIdgtREIzhBmwf4IJwAzSh84GEXVN64rKFyKV8i0_f4QnLPeqZsBQLsUBQ6amISDursJer91Lg8FWBHjWhG1Lexu9TcvH88vK_hfhRhIRllGSbfxfmiRXz-1mQJ-wXMuRSvk_xJ_lltyT79n-ldfLSjfxpCcso04HxP76U2AfM6OttgBfGYz4n4_eOG99ZN_KgrAFp0RvCygAHdKp7JixddtS3u7vf70i2gXvuegygPIzWIeyt8tbYyUMYuAFvJyfwSHni417j4vuVr9kAYdlT11VzhUBYdWUtYfVC_HMRmXkvLT7TZjxd0K89fa77Op4XqeMRkfEpS-i5iMXnm-JP3MX1P93_vLKYgAPXU7Ty6e2OmZ6xZ5GoM40jd8_H3UNBWOfiAxAuGufnLqegzGfrFDquNMqrYK_2zh7wA9RGqwMyQOes8--ny_dBaYQwIPAF6FXA6GkIYe9jpWxL2HZZTOIsT6zrCdsKJGz7g7BtTn-b_vglPh_CjnvNlZn3TwAVYPIoge_3zj6p4670Ni4IO2kJxsYzI_QkkbAbQje_QhiU-StCRv4MAz9gRA3K9BAsSAuPKgyXksnrJqOEGzuOKoDt4B597DpceulVGKY2EXYkbDu_nZafGOMDihDNzRLRNxXrqiwQJVZYVBIZkyJnddHSrMzzQpRC8LpKV7LJZJ3VfIVNWq6LoqZVUa6GBtm6LLMCu3It27YVa8ppy3JkKdZC5sVKNYyynOa0omW-ZmXS0rrkWdaKKk-lqChZUxy50ufwV8r7CZs0q-k6XWneovbzq5gxg48wrxLG4pvZNbOxduo9WVOtfPAvMkEFjc13Z00PpKDHYRzHXpz7SZLMM49V83xaLklBobNaHtsRpSDOPWWCU8YrsZqcbr4c91yyJ2x79HRo2N8BAAD__5A4ikY">