1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/Transforms/LICM/alias-set-tracker-loss.ll
Eric Christopher a62270de2c Revert "Temporarily Revert "Add basic loop fusion pass.""
The reversion apparently deleted the test/Transforms directory.

Will be re-reverting again.

llvm-svn: 358552
2019-04-17 04:52:47 +00:00

40 lines
876 B
LLVM

; RUN: opt -S -licm -loop-unroll < %s
;
; This test contains a carefully rotated set of three nested loops. The middle
; loop can be unrolled leaving one copy of the inner loop inside the outer
; loop. Because of how LICM works, when this middle loop is unrolled and
; removed, its alias set tracker is destroyed and no longer available when LICM
; runs on the outer loop.
define void @f() {
entry:
br label %l1
l2.l1.loopexit_crit_edge:
br label %l1.loopexit
l1.loopexit:
br label %l1.backedge
l1:
br i1 undef, label %l1.backedge, label %l2.preheader
l1.backedge:
br label %l1
l2.preheader:
br i1 true, label %l1.loopexit, label %l3.preheader.lr.ph
l3.preheader.lr.ph:
br label %l3.preheader
l2.loopexit:
br i1 true, label %l2.l1.loopexit_crit_edge, label %l3.preheader
l3.preheader:
br label %l3
l3:
br i1 true, label %l3, label %l2.loopexit
}