1; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false %s -o - | FileCheck --check-prefixes CHECK -DPTR=i32 %s 2; RUN: llc --mtriple=wasm64-unknown-unknown -asm-verbose=false %s -o - | FileCheck --check-prefixes CHECK -DPTR=i64 %s 3 4; empty function that does not use stack, to check WebAssemblyMCLowerPrePass 5; works correctly. 6define hidden void @bar() #0 { 7 ret void 8} 9 10; Function that uses explict stack, and should generate a reference to 11; __stack_pointer, along with the corresponding relocation entry. 12define hidden void @foo() #0 { 13entry: 14 alloca i32, align 4 15 ret void 16} 17 18; CHECK: .file "stack-ptr-mclower.ll" 19; CHECK-NEXT: .globaltype __stack_pointer, [[PTR]] 20; CHECK-NEXT: .functype bar () -> () 21; CHECK-NEXT: .functype foo () -> () 22 23; CHECK-NEXT: .section .text.bar,"",@ 24; CHECK-NEXT: .hidden bar 25; CHECK-NEXT: .globl bar 26; CHECK-NEXT: .type bar,@function 27; CHECK-NEXT: bar: 28; CHECK-NEXT: .functype bar () -> () 29; CHECK-NEXT: end_function 30 31; CHECK: .section .text.foo,"",@ 32; CHECK-NEXT: .hidden foo 33; CHECK-NEXT: .globl foo 34; CHECK-NEXT: .type foo,@function 35; CHECK-NEXT: foo: 36; CHECK-NEXT: .functype foo () -> () 37; CHECK-NEXT: global.get __stack_pointer 38; CHECK-NEXT: [[PTR]].const 16 39; CHECK-NEXT: [[PTR]].sub 40; CHECK-NEXT: drop 41; CHECK-NEXT: end_function 42