<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61361>61361</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
long or infinite loop in instcombine
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:instcombine,
llvm:hang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
regehr
</td>
</tr>
</table>
<pre>
I'm seeing this hanging up InstCombine apparently indefinitely:
```llvm
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-linux-gnu"
define i64 @f-tgt(i32 %0) {
%2 = zext i32 0 to i64
%3 = zext i32 0 to i64
%4 = xor i32 %0, 0
%5 = zext i32 0 to i64
%6 = and i32 %0, %0
%7 = zext i32 0 to i64
%8 = xor i32 %0, 1
%9 = and i32 1, 1
%10 = icmp eq i32 %8, 0
%11 = xor i1 %10, true
%12 = select i1 %11, i32 33554431, i32 0
%13 = zext i32 0 to i64
%14 = and i32 %0, 1
%15 = icmp eq i32 %0, 0
%16 = xor i1 %15, true
%17 = select i1 %16, i32 0, i32 %12
%18 = zext i32 0 to i64
%19 = shl i32 0, 0
%20 = ashr i32 %17, 1
%21 = zext i32 %20 to i64
ret i64 %21
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEVM2O8ygQfBp8QY6g-bF98CEzUaQ57xMQu2OzIthr8GqyT7_CnkycfJEiJWCaooqi1W1CsJ1HrIn6IOqQmTn2w1RP2GE_ZaehvdZfBIoLDYjWdzT2NtDe-C4t5pF--RA_h8vJeqRmHM2EPrortb7Fs_U2orsSsSfsQNht1Gz9OffvZQ1FM3UYaWuiceY6zJEScaAEAPMLEXvMbUnEPv0F5JZrIvbLkFZaErHXMrccEoBDmXsBa-yvFAN4EImTHR3eBIyZml7L3Fk_f-edn3_h67i4QGq1pESycx67SKC0AigBxQhUlBQfK5SmECzE_-F3pAnEaBzS4Q1CvEXIBfE9TPSu80nZBqHecugFYXz7wLHMd1DxlqZ8eRW-QVQPQvx5m7Nl3zaXkeI_N5by2RDndyG-nkuQOM24Ra2vG9BhE2_ARTLxCqGUlOJ3_cD__tW5fPlkD2bUKzN_ZIfrZzPqlZnihRl9v_zPx2J7e6x872TNSejdnWp7P1hzYkL_m1ZePHsF_qiznnvUmjCulZHgP1VTHJ6qfFtNWVuLthKVybDmuii1rEpdZX3daFMqc1bK8LZh0jAtK6lbKEULCkFntgYGggkOvBKFrHbF-dzI9oSqFYKp6kQkw4uxbpe6ym6YusyGMGOtudA8c-aELiw9DmDpO2JvfYjN2rlS0cPnfSv1txRTh2yqUyw_zV0gkjkbYrhLRBsd1m7wHU3J9mvHo24YRmo93Shk8-TqPsYxpG4IRwLHzsZ-Pu2a4ULguAivUz5Ow9_YRALHxUIgcFxc_B8AAP__ubZ7mA">