brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 4b26cad Raw
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