xref: /llvm-project/llvm/test/CodeGen/WebAssembly/global-set.ll (revision 73856247eef35f5336e485dc009842a5b991c421)
1; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false < %s | FileCheck %s
2
3@i32_global = local_unnamed_addr addrspace(1) global i32 undef
4@i64_global = local_unnamed_addr addrspace(1) global i64 undef
5@f32_global = local_unnamed_addr addrspace(1) global float undef
6@f64_global = local_unnamed_addr addrspace(1) global double undef
7
8define void @set_i32_global(i32 %v) {
9; CHECK-LABEL: set_i32_global:
10; CHECK-NEXT: functype       set_i32_global (i32) -> ()
11; CHECK-NEXT: local.get 0
12; CHECK-NEXT: global.set i32_global
13; CHECK-NEXT: end_function
14  store i32 %v, ptr addrspace(1) @i32_global
15  ret void
16}
17
18define void @set_i64_global(i64 %v) {
19; CHECK-LABEL: set_i64_global:
20; CHECK-NEXT: functype       set_i64_global (i64) -> ()
21; CHECK-NEXT: local.get 0
22; CHECK-NEXT: global.set i64_global
23; CHECK-NEXT: end_function
24  store i64 %v, ptr addrspace(1) @i64_global
25  ret void
26}
27
28define void @set_f32_global(float %v) {
29; CHECK-LABEL: set_f32_global:
30; CHECK-NEXT: functype       set_f32_global (f32) -> ()
31; CHECK-NEXT: local.get 0
32; CHECK-NEXT: global.set f32_global
33; CHECK-NEXT: end_function
34  store float %v, ptr addrspace(1) @f32_global
35  ret void
36}
37
38define void @set_f64_global(double %v) {
39; CHECK-LABEL: set_f64_global:
40; CHECK-NEXT: functype       set_f64_global (f64) -> ()
41; CHECK-NEXT: local.get 0
42; CHECK-NEXT: global.set f64_global
43; CHECK-NEXT: end_function
44  store double %v, ptr addrspace(1) @f64_global
45  ret void
46}
47
48; CHECK: .globaltype i32_global, i32
49; CHECK: .globl i32_global
50; CHECK-LABEL: i32_global:
51
52; CHECK: .globaltype i64_global, i64
53; CHECK: .globl i64_global
54; CHECK-LABEL: i64_global:
55
56; CHECK: .globaltype f32_global, f32
57; CHECK: .globl f32_global
58; CHECK-LABEL: f32_global:
59
60; CHECK: .globaltype f64_global, f64
61; CHECK: .globl f64_global
62; CHECK-LABEL: f64_global:
63