Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MC / WebAssembly / function-alias.ll
blob6722d18fe7cc8bda21d7ba58759a0199f976cbe9
1 ; RUN: llc -filetype=obj %s -o - | llvm-readobj --symbols - | FileCheck %s
2 ; RUN: llc -filetype=obj %s -mattr=+reference-types -o - | llvm-readobj --symbols - | FileCheck --check-prefix=REF %s
4 target triple = "wasm32-unknown-unknown-wasm"
6 @foo = alias i8, ptr @func
7 @bar = alias ptr (), ptr @func
8 @bar2 = alias ptr (), ptr @bar
10 define ptr @func() {
11   call ptr @bar2();
12   ret ptr @foo;
15 ; CHECK:      Symbols [
16 ; CHECK-NEXT:   Symbol {
17 ; CHECK-NEXT:     Name: func
18 ; CHECK-NEXT:     Type: FUNCTION (0x0)
19 ; CHECK-NEXT:     Flags [ (0x0)
20 ; CHECK-NEXT:     ]
21 ; CHECK-NEXT:     ElementIndex: 0x0
22 ; CHECK-NEXT:   }
23 ; CHECK-NEXT:   Symbol {
24 ; CHECK-NEXT:     Name: bar2
25 ; CHECK-NEXT:     Type: FUNCTION (0x0)
26 ; CHECK-NEXT:     Flags [ (0x0)
27 ; CHECK-NEXT:     ]
28 ; CHECK-NEXT:     ElementIndex: 0x0
29 ; CHECK-NEXT:   }
30 ; CHECK-NEXT:   Symbol {
31 ; CHECK-NEXT:     Name: foo
32 ; CHECK-NEXT:     Type: FUNCTION (0x0)
33 ; CHECK-NEXT:     Flags [ (0x0)
34 ; CHECK-NEXT:     ]
35 ; CHECK-NEXT:     ElementIndex: 0x0
36 ; CHECK-NEXT:   }
37 ; CHECK-NEXT:   Symbol {
38 ; CHECK-NEXT:     Name: bar
39 ; CHECK-NEXT:     Type: FUNCTION (0x0)
40 ; CHECK-NEXT:     Flags [ (0x0)
41 ; CHECK-NEXT:     ]
42 ; CHECK-NEXT:     ElementIndex: 0x0
43 ; CHECK-NEXT:   }
44 ; CHECK-NEXT: ]
46 ; REF:      Symbols [
47 ; REF-NEXT:   Symbol {
48 ; REF-NEXT:     Name: func
49 ; REF-NEXT:     Type: FUNCTION (0x0)
50 ; REF-NEXT:     Flags [ (0x0)
51 ; REF-NEXT:     ]
52 ; REF-NEXT:     ElementIndex: 0x0
53 ; REF-NEXT:   }
54 ; REF-NEXT:   Symbol {
55 ; REF-NEXT:     Name: bar2
56 ; REF-NEXT:     Type: FUNCTION (0x0)
57 ; REF-NEXT:     Flags [ (0x0)
58 ; REF-NEXT:     ]
59 ; REF-NEXT:     ElementIndex: 0x0
60 ; REF-NEXT:   }
61 ; REF-NEXT:   Symbol {
62 ; REF-NEXT:     Name: foo
63 ; REF-NEXT:     Type: FUNCTION (0x0)
64 ; REF-NEXT:     Flags [ (0x0)
65 ; REF-NEXT:     ]
66 ; REF-NEXT:     ElementIndex: 0x0
67 ; REF-NEXT:   }
68 ; REF-NEXT:   Symbol {
69 ; REF-NEXT:     Name: bar
70 ; REF-NEXT:     Type: FUNCTION (0x0)
71 ; REF-NEXT:     Flags [ (0x0)
72 ; REF-NEXT:     ]
73 ; REF-NEXT:     ElementIndex: 0x0
74 ; REF-NEXT:   }
75 ; REF-NEXT:   Symbol {
76 ; REF-NEXT:     Name: __indirect_function_table
77 ; REF-NEXT:     Type: TABLE (0x5)
78 ; REF-NEXT:     Flags [ (0x90)
79 ; REF-NEXT:       NO_STRIP (0x80)
80 ; REF-NEXT:       UNDEFINED (0x10)
81 ; REF-NEXT:     ]
82 ; REF-NEXT:     ImportModule: env
83 ; REF-NEXT:     ElementIndex: 0x0
84 ; REF-NEXT:   }
85 ; REF-NEXT: ]