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

    <tr>
        <th>Summary</th>
        <td>
            [InstCombine] Crash: Instruction Combining seems stuck in an infinite loop
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          Polaris-Jhb
      </td>
    </tr>
</table>

<pre>
    test command:
1. `opt -instcombine -instcombine-infinite-loop-threshold=4 reduced.ll` fail.
2. `opt -instcombine -instcombine-infinite-loop-threshold=5 reduced.l` success.

reduced.ll:
```
source_filename = "test-creduce.c"
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-unknown-linux-gnu"

define dso_local i32 @e() local_unnamed_addr {
if.end.loopexit.2.14:
  br label %for.body6.2.15

for.body6.2.15:                                   ; preds = %for.body6.2.15, %if.end.loopexit.2.14
  %0 = phi i32 [ undef, %if.end.loopexit.2.14 ], [ %xor.2.15, %for.body6.2.15 ]
  %xor.2.15 = xor i32 %0, 1
  br i1 undef, label %if.end.loopexit.2.15, label %for.body6.2.15, !llvm.loop !0

if.end.loopexit.2.15:                             ; preds = %for.body6.2.15
  %xor.2.lcssa.15 = phi i32 [ %xor.2.15, %for.body6.2.15 ]
  br label %for.body6.2.16

for.body6.2.16:                                   ; preds = %for.body6.2.16, %if.end.loopexit.2.15
  %1 = phi i32 [ %xor.2.lcssa.15, %if.end.loopexit.2.15 ], [ %xor.2.16, %for.body6.2.16 ]
  %xor.2.16 = xor i32 %1, 1
  br i1 undef, label %if.end.loopexit.2.16, label %for.body6.2.16, !llvm.loop !0

if.end.loopexit.2.16:                             ; preds = %for.body6.2.16
  %xor.2.lcssa.16 = phi i32 [ %xor.2.16, %for.body6.2.16 ]
  br label %for.body6.2.17

for.body6.2.17:                                   ; preds = %for.body6.2.17, %if.end.loopexit.2.16
  %2 = phi i32 [ %xor.2.lcssa.16, %if.end.loopexit.2.16 ], [ %xor.2.17, %for.body6.2.17 ]
  %xor.2.17 = xor i32 %2, 1
  br i1 undef, label %if.end.loopexit.2.17, label %for.body6.2.17, !llvm.loop !0

if.end.loopexit.2.17:                             ; preds = %for.body6.2.17
  %xor.2.lcssa.17 = phi i32 [ %xor.2.17, %for.body6.2.17 ]
  br label %for.body6.2.18

for.body6.2.18:                                   ; preds = %for.body6.2.18, %if.end.loopexit.2.17
  %3 = phi i32 [ %xor.2.lcssa.17, %if.end.loopexit.2.17 ], [ %xor.2.18, %for.body6.2.18 ]
  %xor.2.18 = xor i32 %3, 1
  br label %for.body6.2.18
}

!0 = distinct !{!0, !1}
!1 = !{!"llvm.loop.mustprogress"}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytls2OmzoUx5-GbCwQGLCZBYvORJXuXV2pDzAy2AS3jh3Z5nb69j2GfDARBHU6EQFsn88_v8VpDP9Ve-E8as3xyDSP8i9Ruo_SL1mCIpKak0ex1M7DcSO1eLeA905q6UWsjDnFvrfC9UZBjH2BrOBDK3iiFIRBHZMqmQLjvwpc3gKHuG5oW-HcOfR0n2W-NAOm52tcOjPYVrx2UgnNjgJBXBRhHHSI28k9aWFjsvbMHoRHnHmm2C8z-Iu9iI-QAaqt4BH-OY5lRuBlvIUVKeCFFLCNgwHcY53jae9b2LtL4q08qWtBjNm2B8tB_9Dmp46V1MNbfNDD1W26c9EFCbkzr8q0TCGZYxQVqYhChic0br4OOjTLXxnnFkX0efKVXSI0iAVCizfpE5xkxVU3hBqLFGuEgnLKztikAWBIMCrnBdyd5OC4-YvyZ3QCsd252_vw-CVsLpZ3rg2O09H51Mup5fIZDRrUeOAMRvvxGGzB5A2SztK9r2G0vSW72I45YTHlhCKCczZTTGa3Mq7qLRRTvjNY6j9T6v_j6BMW6VzzxXgbym9pft-rap1jl47nKv-JcqsIkVWEyGcgRNYpmHearTd3af9BoGWcyJIoZBknco9T9lGcyDpO5CM4bX6FLf1XcCIPcNpWbhUnuooT_Qyc6DoF807xJk4PuCTLONElUegyTvQeJ_xRnOg6TvQjOG1-hS39V3CiD3DaVm4Vp2oVp-ozcKrWKZh3mm_i9IBLuoxTtSRKtYxTdY9Tfo_TY_Xofi5joGQMyKXzUrc-cBNGkUDPhFR2c4HFWbqzDYw9V-KS4-D8yZoDzIYuzENXt8ust-N1zp_yJ7bz0itRgwj_wIz5Ms2Y0C16scz14WOGfTu0XhqNpnOpD8gJcXTI-aH9gaRGTKPLXIpCBbvBqrr3_uTCvIS_wnWQvh-aBMZYWIRSz48YCv0uWg9L6dwgoOCvZUmratfXRYZxxgWryq6ioqBpygQv0rzjvCtohnejwC6UD21q8RONIULL5X4na5xinJZ5lma4KEnyRCuW50VDKakKUogwBh7D9D0qZ-xhZ-uxpGY4ODhU8CXc7ZA5Jw9ajGqF-GzwvbH1f0YxK138b9_sxvT1WP5vvENXoQ">