blob: 7d16fd38c8a4f6b13633bbd7a7dad8dd319bd3bf [file] [log] [blame]
JF Bastienb6091df2015-08-25 22:58:05 +00001; RUN: llc < %s -asm-verbose=false | FileCheck %s
2
3; Test that basic functions assemble as expected.
4
Dan Gohman5e066842015-09-09 20:54:31 +00005target datalayout = "e-p:32:32-i64:64-n32:64-S128"
JF Bastienb6091df2015-08-25 22:58:05 +00006target triple = "wasm32-unknown-unknown"
7
Dan Gohmane51c0582015-10-06 00:27:55 +00008; CHECK-LABEL: f0:
9; CHECK: return{{$}}
10; CHECK: .size f0,
JF Bastienb6091df2015-08-25 22:58:05 +000011define void @f0() {
12 ret void
13}
14
Dan Gohmane51c0582015-10-06 00:27:55 +000015; CHECK-LABEL: f1:
16; CHECK-NEXT: .result i32{{$}}
JF Bastien1d20a5e2015-10-16 00:53:49 +000017; CHECK-NEXT: .local i32{{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000018; CHECK-NEXT: i32.const 0{{$}}
JF Bastien1d20a5e2015-10-16 00:53:49 +000019; CHECK-NEXT: set_local 0, pop{{$}}
20; CHECK-NEXT: i32.return (get_local 0){{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000021; CHECK: .size f1,
JF Bastienb6091df2015-08-25 22:58:05 +000022define i32 @f1() {
23 ret i32 0
24}
25
Dan Gohmane51c0582015-10-06 00:27:55 +000026; CHECK-LABEL: f2:
27; CHECK-NEXT: .param i32{{$}}
28; CHECK-NEXT: .param f32{{$}}
29; CHECK-NEXT: .result i32{{$}}
JF Bastien1d20a5e2015-10-16 00:53:49 +000030; CHECK-NEXT: .local i32{{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000031; CHECK-NEXT: i32.const 0{{$}}
JF Bastien1d20a5e2015-10-16 00:53:49 +000032; CHECK-NEXT: set_local 2, pop{{$}}
33; CHECK-NEXT: i32.return (get_local 2){{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000034; CHECK: .size f2,
JF Bastienb6091df2015-08-25 22:58:05 +000035define i32 @f2(i32 %p1, float %p2) {
36 ret i32 0
37}
38
Dan Gohmane51c0582015-10-06 00:27:55 +000039; CHECK-LABEL: f3:
40; CHECK-NEXT: .param i32{{$}}
41; CHECK-NEXT: .param f32{{$}}
JF Bastien1d20a5e2015-10-16 00:53:49 +000042; CHECK-NOT: .local
43; CHECK-NEXT: void.return{{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000044; CHECK: .size f3,
JF Bastienb6091df2015-08-25 22:58:05 +000045define void @f3(i32 %p1, float %p2) {
46 ret void
47}