<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/136650>136650</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[InstCombine] Poison safety violation in `foldLogicOfFCmps`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
miscompilation,
llvm:instcombine
</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/Qcvvgi
```
----------------------------------------
define i1 @src(half %x, half %y) {
#0:
%copysign.x = copysign half %x, %y
%ord = fcmp ord half %x, 0x0000
%cmp = fcmp uge half %copysign.x, 0x7c00
%#1 = select i1 %ord, i1 %cmp, i1 0
ret i1 %#1
}
=>
define i1 @src(half %x, half %y) nofree willreturn memory(none) {
#0:
%copysign.x = copysign half %x, %y
%#1 = fcmp oeq half %copysign.x, 0x7c00
ret i1 %#1
}
Transformation doesn't verify!
ERROR: Target is more poisonous than source
Example:
half %x = #x7c02 (SNaN)
half %y = poison
Source:
half %copysign.x = poison
i1 %ord = #x0 (0)
i1 %cmp = poison
i1 %#1 = #x0 (0)
Target:
half %copysign.x = poison
i1 %#1 = poison
Source value: #x0 (0)
Target value: poison
Summary:
0 correct transformations
1 incorrect transformations
0 failed-to-prove transformations
0 Alive2 errors
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVNGu2zYM_RrmRbiBQtuJ8-AH96YGBgztdtsfkGU60SBbniS7cb9-kJz4Nt267QINghg0D3l4jhQK59S5JyogeweIjZfXr_MXQITstBGjvxhb3F5uatPMxQsN1jSjJAtJyS7eDw6SErACrIRWE-FW66nbGnsGrCQBVl8Bq9_lNJ0V8BL2_Pbl5dP__AAvG2pVT0ztGKTcWQmYX4RuGWB2BXxm92AGPDI4vAtMmPAwGi9ZyEgzzEHr9sogObF7yB7axA68DE9jmwhsZTewEDwA-ZVzztfe3fCKHc-0Yl9Jl6KDXIoAM8BkF4scaZI-SousAbkEshtuwcJk6Q4LxUHi4RR-kxMk799qUm9aS8S-KK0t-dH2rKPO2Bkw701PP8fHB6GLk_Tnf7rzI6Gfrehda2wnvDI9awy5HvDg2URWtTNghPLy_cvLx5dwPT8Lew6tHOuMJTYY5UxvRsf8RfTMmdFKupVcRTdoWnSuUuLYgEmYDBlg_umD-AB4_AYzR8zSeWn1aWn70Ok701b4eugrEw80fOFYb8E_Fa22fl8VjIq63zLC2m19v8hgk9BjEPM3mpu3a_7BgrHrhJ3vt4YzaawNl9w_nKCL2R1T_b_lOWuF0tQ8efM0WDPRD1Bl3D6MrDXWfbtpNk2RNMfkKDZU7A5phsckzfPNpThwmeU8reVul6LEPa9FLdsGj9jUe9niRhXIMeMpIk_SNM23vEU65vu2SVue5wmHlFMnlF533kY5N1KxS_b7jG-0qEm7227tlJOmG5SOU4cVi8-AGCohKVXvvDRdrcJfL25fW4TUUz2eHaRcK-fdK41XXsel_Uvv_POtLjux3-IpMCda8jOblFnYmOoZ7HlrdPOrOSv5sa2eu8EFc0ari8c1flb-MtZbaTrAKo63PIL7f5D0gFVU6QCrm9CpwL8CAAD__2tO2w4">