brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 4a21dc2 Raw
54 lines · plain
1; RUN: opt -passes=loop-unroll -debug-only=loop-unroll -disable-output < %s2; REQUIRES: asserts3; Compile this test with debug flag on to verify domtree right after loop unrolling.4target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"5 6; PR271577define void @foo(i1 %arg) {8entry:9  br label %loop_header10loop_header:11  %iv = phi i64 [ 0, %entry ], [ %iv_next, %loop_latch ]12  br i1 %arg, label %loop_latch, label %loop_exiting_bb113loop_exiting_bb1:14  br i1 false, label %loop_exiting_bb2, label %exit1.loopexit15loop_exiting_bb2:16  br i1 false, label %loop_latch, label %bb17bb:18  br label %exit119loop_latch:20  %iv_next = add nuw nsw i64 %iv, 121  %cmp = icmp ne i64 %iv_next, 222  br i1 %cmp, label %loop_header, label %exit223exit1.loopexit:24  br label %exit125exit1:26  ret void27exit2:28  ret void29}30 31define void @foo2(i1 %arg) {32entry:33  br label %loop.header34loop.header:35  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %latch ]36  %iv.inc = add i32 %iv, 137  br i1 %arg, label %diamond, label %latch38diamond:39  br i1 %arg, label %left, label %right40left:41  br i1 %arg, label %exit, label %merge42right:43  br i1 %arg, label %exit, label %merge44merge:45  br label %latch46latch:47  %end.cond = icmp eq i32 %iv, 148  br i1 %end.cond, label %exit1, label %loop.header49exit:50  ret void51exit1:52  ret void53}54