brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 37206b0 Raw
55 lines · plain
1; RUN: opt < %s -S -passes=loop-unroll -mtriple aarch64 -mcpu=cortex-a57 | FileCheck %s2 3; Partial unroll 8 times for this loop.4define void @unroll1() nounwind {5entry:6  br label %loop7 8loop:9  %iv = phi i32 [ 0, %entry ], [ %inc, %loop ]10  %inc = add i32 %iv, 111  %exitcnd = icmp uge i32 %inc, 102412  br i1 %exitcnd, label %exit, label %loop13 14exit:15  ret void16}17 18; CHECK: add{{.*}}, 819; CHECK-NEXT: icmp20 21; Partial unroll 16 times for this loop.22define void @unroll2() nounwind {23entry:24  br label %loop125 26loop1:27  %iv1 = phi i32 [ 0, %entry ], [ %inc1, %loop1.latch ]28  br label %loop2.header29 30loop2.header:31  br label %loop232 33loop2:34  %iv2 = phi i32 [ 0, %loop2.header ], [ %inc2, %loop2 ]35  %inc2 = add i32 %iv2, 136  %exitcnd2 = icmp uge i32 %inc2, 102437  br i1 %exitcnd2, label %exit2, label %loop238 39exit2:40  br label %loop1.latch41 42loop1.latch:43  %inc1 = add i32 %iv1, 144  %exitcnd1 = icmp uge i32 %inc1, 102445  br i1 %exitcnd2, label %exit, label %loop146 47exit:48  ret void49}50 51 52 53; CHECK: add{{.*}}, 1654; CHECK-NEXT: icmp55