; RUN: opt < %s -S -loop-unroll -unroll-allow-partial | FileCheck %s ; Loop size = 3, when the function has the optsize attribute, the ; OptSizeUnrollThreshold, i.e. 50, is used, hence the loop should be unrolled ; by 16 times because 3 * 16 < 50. define void @unroll_opt_for_size() nounwind optsize { entry: br label %loop loop: %iv = phi i32 [ 0, %entry ], [ %inc, %loop ] %inc = add i32 %iv, 1 %exitcnd = icmp uge i32 %inc, 1024 br i1 %exitcnd, label %exit, label %loop exit: ret void } ; CHECK: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: add ; CHECK-NEXT: icmp