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 reloction entry. 12define hidden void @foo() #0 { 13entry: 14 alloca i32, align 4 15 ret void 16} 17 18; CHECK: .text 19; CHECK-NEXT: .file "stack-ptr-mclower.ll" 20; CHECK-NEXT: .section .text.bar,"",@ 21; CHECK-NEXT: .hidden bar 22; CHECK-NEXT: .globl bar 23; CHECK-NEXT: .globaltype __stack_pointer, [[PTR]] 24; CHECK-NEXT: .type bar,@function 25; CHECK-NEXT: bar: 26; CHECK-NEXT: .functype bar () -> () 27; CHECK-NEXT: end_function 28; CHECK-NEXT: .Lfunc_end0: 29; CHECK-NEXT: .size bar, .Lfunc_end0-bar 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; CHECK-NEXT: .Lfunc_end1: 43; CHECK-NEXT: .size foo, .Lfunc_end1-foo 44