xref: /llvm-project/llvm/test/Assembler/uselistorder_bb.ll (revision 75a479221b72c8b4827470485949cebf67d1c967)
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 ptr blockaddress (@bafunc1, %bb)
7@ba2 = constant ptr getelementptr (i8, ptr blockaddress (@bafunc2, %bb), i61 0)
8@ba3 = constant ptr getelementptr (i8, ptr blockaddress (@bafunc2, %bb), i61 0)
9
10define ptr @babefore() {
11  ret ptr getelementptr (i8, ptr blockaddress (@bafunc2, %bb), i61 0)
12bb1:
13  ret ptr blockaddress (@bafunc1, %bb)
14bb2:
15  ret ptr 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 ptr @baafter() {
33  ret ptr blockaddress (@bafunc2, %bb)
34bb1:
35  ret ptr blockaddress (@bafunc1, %bb)
36bb2:
37  ret ptr blockaddress (@bafunc3, %bb)
38}
39
40uselistorder_bb @bafunc1, %bb, { 1, 0 }
41uselistorder_bb @bafunc2, %bb, { 1, 0 }
42uselistorder_bb @bafunc3, %bb, { 1, 0 }
43