xref: /llvm-project/llvm/test/Bindings/llvm-c/functions.ll (revision 125592dc8d483efb8ac2d6fb3710fcf356206ee0)
1*125592dcSRafael Espindola; RUN: llvm-as %s -o %t.bc
2*125592dcSRafael Espindola; RUN: llvm-c-test --module-list-functions < %t.bc| FileCheck %s
3*125592dcSRafael Espindola; RUN: llvm-c-test --module-dump < %t.bc| FileCheck --check-prefix=MOD %s
4*125592dcSRafael Espindola; RUN: llvm-c-test --lazy-module-dump < %t.bc| FileCheck --check-prefix=LMOD %s
5*125592dcSRafael Espindola
6*125592dcSRafael Espindola; MOD:      define i32 @X() {
7*125592dcSRafael Espindola; MOD-NEXT:   entry:
8*125592dcSRafael Espindola
9*125592dcSRafael Espindola; LMOD:      ; Materializable
10*125592dcSRafael Espindola; LMOD-NEXT: define i32 @X() {}
11b932c669SAnders Waldenborg
12b932c669SAnders Waldenborgdefine i32 @X() {
13b932c669SAnders Waldenborgentry:
14b932c669SAnders Waldenborg  br label %l1
15b932c669SAnders Waldenborg
16b932c669SAnders Waldenborgl1:
17b932c669SAnders Waldenborg  br label %l2
18b932c669SAnders Waldenborg
19b932c669SAnders Waldenborgl2:
20b932c669SAnders Waldenborg  br label %l3
21b932c669SAnders Waldenborg
22b932c669SAnders Waldenborgl3:
23b932c669SAnders Waldenborg  ret i32 1234
24b932c669SAnders Waldenborg}
25b932c669SAnders Waldenborg;CHECK: FunctionDefinition: X [#bb=4]
26b932c669SAnders Waldenborg
27b932c669SAnders Waldenborg
28b932c669SAnders Waldenborgdefine i32 @Z(i32 %a) {
29b932c669SAnders Waldenborgentry:
30b932c669SAnders Waldenborg  %0 = tail call i32 @Y(i32 %a)
31b932c669SAnders Waldenborg  ret i32 %0
32b932c669SAnders Waldenborg}
33b932c669SAnders Waldenborg
34b932c669SAnders Waldenborg;CHECK: FunctionDefinition: Z [#bb=1]
35b932c669SAnders Waldenborg;CHECK:  calls: Y
36b932c669SAnders Waldenborg;CHECK:  #isn: 2
37b932c669SAnders Waldenborg
38b932c669SAnders Waldenborgdeclare i32 @Y(i32)
39b932c669SAnders Waldenborg;CHECK: FunctionDeclaration: Y
40b932c669SAnders Waldenborg
41