1 ; RUN: opt < %s -attributor -attributor-disable=false -attributor-max-iterations=0 -S | FileCheck %s
2 ; RUN: opt < %s -attributor -attributor-disable=false -attributor-max-iterations=1 -S | FileCheck %s
3 ; RUN: opt < %s -attributor -attributor-disable=false -attributor-max-iterations=2 -S | FileCheck %s
4 ; RUN: opt < %s -attributor -attributor-disable=false -attributor-max-iterations=3 -S | FileCheck %s
5 ; RUN: opt < %s -attributor -attributor-disable=false -attributor-max-iterations=4 -S | FileCheck %s
6 ; RUN: opt < %s -attributor -attributor-disable=false -attributor-max-iterations=2147483647 -S | FileCheck %s
9 ; CHECK: declare i32 @foo1()
11 ; CHECK: declare i32 @foo2()
13 ; CHECK: declare i32 @foo3()
19 ; CHECK: define internal i32 @bar() {
20 ; CHECK-NEXT: %1 = call i32 @foo1()
21 ; CHECK-NEXT: %2 = call i32 @foo2()
22 ; CHECK-NEXT: %3 = call i32 @foo3()
23 ; CHECK-NEXT: ret i32 1
25 define internal i32 @bar() {
33 ; CHECK: define i32 @baz() {
34 ; CHECK-NEXT: %1 = call i32 @bar()
35 ; CHECK-NEXT: ret i32 0
42 ; We should never derive anything here
43 ; CHECK-NOT: attributes