1 ; RUN: opt -S -licm -loop-unroll < %s
3 ; This test contains a carefully rotated set of three nested loops. The middle
4 ; loop can be unrolled leaving one copy of the inner loop inside the outer
5 ; loop. Because of how LICM works, when this middle loop is unrolled and
6 ; removed, its alias set tracker is destroyed and no longer available when LICM
7 ; runs on the outer loop.
13 l2.l1.loopexit_crit_edge:
20 br i1 undef, label %l1.backedge, label %l2.preheader
26 br i1 true, label %l1.loopexit, label %l3.preheader.lr.ph
29 br label %l3.preheader
32 br i1 true, label %l2.l1.loopexit_crit_edge, label %l3.preheader
38 br i1 true, label %l3, label %l2.loopexit