54 lines · plain
1; RUN: opt -disable-output -passes=print-mustexecute < %s 2>&1 | FileCheck %s2 3@c = global i16 0, align 24 5; CHECK-LABEL: define void @latch_cycle_irreducible6; CHECK: store i16 5, ptr @c, align 2{{$}}7define void @latch_cycle_irreducible() {8entry:9 br label %loop10 11loop: ; preds = %loop.latch, %entry12 %v = phi i32 [ 10, %entry ], [ 0, %loop.latch ]13 %c = icmp eq i32 %v, 014 br i1 %c, label %loop.exit, label %loop.cont15 16loop.cont: ; preds = %loop17 br i1 false, label %loop.irreducible, label %loop.latch18 19loop.irreducible: ; preds = %loop.latch, %loop.cont20 store i16 5, ptr @c, align 221 br label %loop.latch22 23loop.latch: ; preds = %loop.irreducible, %loop.cont24 br i1 false, label %loop.irreducible, label %loop25 26loop.exit: ; preds = %loop27 ret void28}29 30; CHECK-LABEL: define void @latch_cycle_reducible31; CHECK: store i16 5, ptr @c, align 2{{$}}32define void @latch_cycle_reducible() {33entry:34 br label %loop35 36loop: ; preds = %loop.latch, %entry37 %v = phi i32 [ 10, %entry ], [ 0, %loop.latch ]38 %c = icmp eq i32 %v, 039 br i1 %c, label %loop.exit, label %loop240 41loop2: ; preds = %loop.latch, %loop42 br i1 false, label %loop2.cont, label %loop.latch43 44loop2.cont: ; preds = %loop245 store i16 5, ptr @c, align 246 br label %loop.latch47 48loop.latch: ; preds = %loop2.cont, %loop249 br i1 false, label %loop2, label %loop50 51loop.exit: ; preds = %loop52 ret void53}54