1; RUN: llvm-as < %s -disable-output 2>&1 | FileCheck %s -allow-empty
2; CHECK-NOT: error
3; CHECK-NOT: warning
4; RUN: verify-uselistorder < %s
5
6@ba1 = constant i8* blockaddress (@bafunc1, %bb)
7@ba2 = constant i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
8@ba3 = constant i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
9
10define i8* @babefore() {
11  ret i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
12bb1:
13  ret i8* blockaddress (@bafunc1, %bb)
14bb2:
15  ret i8* blockaddress (@bafunc3, %bb)
16}
17define void @bafunc1() {
18  br label %bb
19bb:
20  unreachable
21}
22define void @bafunc2() {
23  br label %bb
24bb:
25  unreachable
26}
27define void @bafunc3() {
28  br label %bb
29bb:
30  unreachable
31}
32define i8* @baafter() {
33  ret i8* blockaddress (@bafunc2, %bb)
34bb1:
35  ret i8* blockaddress (@bafunc1, %bb)
36bb2:
37  ret i8* blockaddress (@bafunc3, %bb)
38}
39
40uselistorder_bb @bafunc1, %bb, { 1, 0 }
41uselistorder_bb @bafunc2, %bb, { 1, 0 }
42uselistorder_bb @bafunc3, %bb, { 1, 0 }
43