Home | History | Annotate | Download | only in LoopUnroll
      1 ; RUN: opt < %s -S -loop-unroll -unroll-allow-partial | FileCheck %s
      2 ; Loop size = 3, when the function has the optsize attribute, the
      3 ; OptSizeUnrollThreshold, i.e. 50, is used, hence the loop should be unrolled
      4 ; by 32 times because (1 * 32) + 2 < 50 (whereas (1 * 64 + 2) is not).
      5 define void @unroll_opt_for_size() nounwind optsize {
      6 entry:
      7   br label %loop
      8 
      9 loop:
     10   %iv = phi i32 [ 0, %entry ], [ %inc, %loop ]
     11   %inc = add i32 %iv, 1
     12   %exitcnd = icmp uge i32 %inc, 1024
     13   br i1 %exitcnd, label %exit, label %loop
     14 
     15 exit:
     16   ret void
     17 }
     18 
     19 ; CHECK:      add
     20 ; CHECK-NEXT: add
     21 ; CHECK-NEXT: add
     22 ; CHECK-NEXT: add
     23 ; CHECK-NEXT: add
     24 ; CHECK-NEXT: add
     25 ; CHECK-NEXT: add
     26 ; CHECK-NEXT: add
     27 ; CHECK-NEXT: add
     28 ; CHECK-NEXT: add
     29 ; CHECK-NEXT: add
     30 ; CHECK-NEXT: add
     31 ; CHECK-NEXT: add
     32 ; CHECK-NEXT: add
     33 ; CHECK-NEXT: add
     34 ; CHECK-NEXT: add
     35 ; CHECK-NEXT: add
     36 ; CHECK-NEXT: add
     37 ; CHECK-NEXT: add
     38 ; CHECK-NEXT: add
     39 ; CHECK-NEXT: add
     40 ; CHECK-NEXT: add
     41 ; CHECK-NEXT: add
     42 ; CHECK-NEXT: add
     43 ; CHECK-NEXT: add
     44 ; CHECK-NEXT: add
     45 ; CHECK-NEXT: add
     46 ; CHECK-NEXT: add
     47 ; CHECK-NEXT: add
     48 ; CHECK-NEXT: add
     49 ; CHECK-NEXT: add
     50 ; CHECK-NEXT: add
     51 ; CHECK-NEXT: icmp
     52 
     53