<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55801>55801</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Infinite loop in InstCombine with boolean expression
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
meheff
</td>
</tr>
</table>
<pre>
Repro is below. `opt test.ll -S -O2` runs forever.
revision: 5cb14dc5a3a6
Looking at traces it looks like `SimplifyOrInst` in involved in the transformation cycle.
```
define { i1, i1, i1, i1, i1 } @test(i1 %a_0, i1 %a_1, i1 %a_2, i1 %a_3, i1 %b_0, i1 %b_1, i1 %b_2, i1 %b_3) {
entry:
%0 = and i1 %a_0, %b_0
%1 = and i1 %a_3, %b_3
%2 = xor i1 %a_2, %b_2
%3 = and i1 %a_1, %b_1
%4 = xor i1 %3, true
%5 = and i1 %0, %a_1
%6 = and i1 %2, %b_1
%7 = or i1 %3, %6
%d = or i1 %7, %5
%8 = xor i1 %d, true
%9 = xor i1 %8, true
%10 = xor i1 %1, true
%11 = and i1 %10, %4
%12 = xor i1 %11, true
%13 = insertvalue { i1, i1, i1, i1, i1 } zeroinitializer, i1 %9, 0
%14 = insertvalue { i1, i1, i1, i1, i1 } %13, i1 %4, 1
%15 = insertvalue { i1, i1, i1, i1, i1 } %14, i1 true, 2
%16 = insertvalue { i1, i1, i1, i1, i1 } %15, i1 %a_3, 3
%17 = insertvalue { i1, i1, i1, i1, i1 } %16, i1 %12, 4
ret { i1, i1, i1, i1, i1 } %17
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydlcFuozAQhp8GLlYRNhiSA4e2UaVKK1XaPsDKhiHx1rEj26TNPv3aJCkOyaGKhGDG_uafMTYD192h-Q07o5GwiIPUnxlKqlzvHHJgXSYlenhHD2_EDyIzKIt6bWAPxmP5Kskfj3c_JKzQKikeEW05LruWsoJVMfNL6w-h1oh5acNasEg4JP2gRVJ8QEj7LrY7KfrDm3lV1oWUQvlrr-UeumC7DYRgZX0VW-Z8RtQeWglZnMjHna7R7aAXysvXT0jghDzfvPvpFUrKPCw6IYswQCj7k59ng4Njh8ROMTk8juFxDI9jeIhZhqKORYJy5uDf3tFDAclRUqwQUx26qOaUY-LwFVd8c0XEkZH70uZyDafKJq640sPfHI64cqY3ZnVmgIihM63zCtiFUjWjyM189UhdpgvBEdJdIvUJoRGymFXd3ah6OWMWNxiczyB8C5rvDT6_gDKm5juDb2od90UoC8btmRx-dKT_gdFCCSeYFN6eDuAymBfHqLxHfyxsUi2DGW8apveqlid_fA3ejI8oru5VpVefbfyJ4Ppe3WrSxePx_d5gA-6nIvWpf9WrWSNLu6bolsWSpU44Cc2r6sOmQmifu9AXQ7t81lseGt2ncBvEtZbAFIKvnQEbWnM6GNlsnNvZ0GbIi7_Wnhx41uqtd6Tcnx8P_n_wF1rfCF-EtQNYb1C6yHG6aeiywFXLO9IDrTva1iUvu7JiDPq27niXSuZ_I7ZJ6FNCiIJPNEp4O6GrVDQkJySnBcbLvChp1rctZjWQuqJ9u_BffpnDlgmZhToybdapacaS-LC2flIK6-w0yfzS1gpgTOf12eA22jRb2EDfp2PmZqz8P0ty0Pk">