xref: /llvm-project/llvm/test/CodeGen/WebAssembly/weak.ll (revision 73856247eef35f5336e485dc009842a5b991c421)
1f7f0fe61SSam Clegg; RUN: llc < %s -asm-verbose=false -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s
2f7f0fe61SSam Clegg
3f7f0fe61SSam Cleggtarget triple = "wasm32-unknown-unknown"
4f7f0fe61SSam Clegg
5f7f0fe61SSam Clegg; CHECK: .weak f
6f7f0fe61SSam Cleggdefine weak i32 @f() {
7f7f0fe61SSam Clegg  unreachable
8f7f0fe61SSam Clegg}
9f7f0fe61SSam Clegg
10f7f0fe61SSam Clegg; CHECK: g:
11f7f0fe61SSam Clegg; CHECK:  call h
12f7f0fe61SSam Cleggdefine void @g() {
13f7f0fe61SSam Clegg  tail call void @h( )
14f7f0fe61SSam Clegg  ret void
15f7f0fe61SSam Clegg}
16f7f0fe61SSam Clegg
17f7f0fe61SSam Clegg; CHECK: bar:
18f7f0fe61SSam Clegg; CHECK:   .int32 foo
19f7f0fe61SSam Clegg; CHECK:   .size bar, 4
20*73856247SNikita Popov@bar = global ptr @foo
21f7f0fe61SSam Clegg
22f7f0fe61SSam Clegg; CHECK: .weak h
23f7f0fe61SSam Cleggdeclare extern_weak void @h()
24f7f0fe61SSam Clegg
25f7f0fe61SSam Clegg; CHECK: .weak foo
26f7f0fe61SSam Clegg@foo = extern_weak global i32
27