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