blob: 91968f32a35e1a9c15c022c590b3e9a38fd6f283 [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{{$}}
Dan Gohman4ba48162015-11-18 16:12:01 +000017; CHECK-NEXT: i32.const $push[[NUM:[0-9]+]], 0{{$}}
18; CHECK-NEXT: return $pop[[NUM]]{{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000019; CHECK: .size f1,
JF Bastienb6091df2015-08-25 22:58:05 +000020define i32 @f1() {
21 ret i32 0
22}
23
Dan Gohmane51c0582015-10-06 00:27:55 +000024; CHECK-LABEL: f2:
Dan Gohman53828fd2015-11-23 16:50:18 +000025; CHECK-NEXT: .param i32, f32{{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000026; CHECK-NEXT: .result i32{{$}}
Dan Gohman4ba48162015-11-18 16:12:01 +000027; CHECK-NEXT: i32.const $push[[NUM:[0-9]+]], 0{{$}}
28; CHECK-NEXT: return $pop[[NUM]]{{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000029; CHECK: .size f2,
JF Bastienb6091df2015-08-25 22:58:05 +000030define i32 @f2(i32 %p1, float %p2) {
31 ret i32 0
32}
33
Dan Gohmane51c0582015-10-06 00:27:55 +000034; CHECK-LABEL: f3:
Dan Gohman53828fd2015-11-23 16:50:18 +000035; CHECK-NEXT: .param i32, f32{{$}}
36; CHECK-NOT: local
JF Bastienc8f89e82015-10-20 01:26:54 +000037; CHECK-NEXT: return{{$}}
Dan Gohmane51c0582015-10-06 00:27:55 +000038; CHECK: .size f3,
JF Bastienb6091df2015-08-25 22:58:05 +000039define void @f3(i32 %p1, float %p2) {
40 ret void
41}
Derek Schuff46e33162015-11-16 21:12:41 +000042
43; CHECK-LABEL: f4:
44; CHECK-NEXT: .param i32{{$}}
45; CHECK-NEXT: .result i32{{$}}
Dan Gohman53828fd2015-11-23 16:50:18 +000046; CHECK-NEXT: local
Derek Schuff46e33162015-11-16 21:12:41 +000047define i32 @f4(i32 %x) {
48entry:
49 %c = trunc i32 %x to i1
50 br i1 %c, label %true, label %false
51true:
52 ret i32 0
53false:
54 ret i32 1
55}
56
57; CHECK-LABEL: f5:
58; CHECK-NEXT: .result f32{{$}}
59; CHECK-NEXT: unreachable
60define float @f5() {
61 unreachable
62}