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 16 times because 3 * 16 < 50.
5define void @unroll_opt_for_size() nounwind optsize {
6entry:
7  br label %loop
8
9loop:
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
15exit:
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: icmp
36