brintos

brintos / llvm-project-archived public Read only

0
0
Text · 901 B · 1670d86 Raw
40 lines · plain
1; RUN: opt -S -passes='loop-mssa(licm),loop-unroll' < %s2;3; This test contains a carefully rotated set of three nested loops. The middle4; loop can be unrolled leaving one copy of the inner loop inside the outer5; loop. Because of how LICM works, when this middle loop is unrolled and6; removed, its alias set tracker is destroyed and no longer available when LICM7; runs on the outer loop.8 9define void @f(i1 %arg) {10entry:11  br label %l112 13l2.l1.loopexit_crit_edge:14  br label %l1.loopexit15 16l1.loopexit:17  br label %l1.backedge18 19l1:20  br i1 %arg, label %l1.backedge, label %l2.preheader21 22l1.backedge:23  br label %l124 25l2.preheader:26  br i1 true, label %l1.loopexit, label %l3.preheader.lr.ph27 28l3.preheader.lr.ph:29  br label %l3.preheader30 31l2.loopexit:32  br i1 true, label %l2.l1.loopexit_crit_edge, label %l3.preheader33 34l3.preheader:35  br label %l336 37l3:38  br i1 true, label %l3, label %l2.loopexit39}40