brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 2a12fcd Raw
61 lines · plain
1; RUN: llc < %s -asm-verbose=false -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s2 3; Test that basic functions assemble as expected.4 5target triple = "wasm32-unknown-unknown"6 7; CHECK-LABEL: f0:8; CHECK: return{{$}}9; CHECK: end_function{{$}}10define void @f0() {11  ret void12}13 14; CHECK-LABEL: f1:15; CHECK-NEXT: .functype f1 () -> (i32){{$}}16; CHECK-NEXT: i32.const $push[[NUM:[0-9]+]]=, 0{{$}}17; CHECK-NEXT: return $pop[[NUM]]{{$}}18; CHECK: end_function{{$}}19define i32 @f1() {20  ret i32 021}22 23; CHECK-LABEL: f2:24; CHECK-NEXT: .functype f2 (i32, f32) -> (i32){{$}}25; CHECK-NEXT: i32.const $push[[NUM:[0-9]+]]=, 0{{$}}26; CHECK-NEXT: return $pop[[NUM]]{{$}}27; CHECK: end_function{{$}}28define i32 @f2(i32 %p1, float %p2) {29  ret i32 030}31 32; CHECK-LABEL: f3:33; CHECK-NEXT: .functype f3 (i32, f32) -> (){{$}}34; CHECK-NOT: local35; CHECK-NEXT: return{{$}}36; CHECK: end_function{{$}}37define void @f3(i32 %p1, float %p2) {38  ret void39}40 41; CHECK-LABEL: f4:42; CHECK-NEXT: .functype f4 (i32) -> (i32){{$}}43; CHECK-NOT: local44; CHECK: end_function{{$}}45define i32 @f4(i32 %x) {46entry:47   %c = trunc i32 %x to i148   br i1 %c, label %true, label %false49true:50   ret i32 051false:52   ret i32 153}54 55; CHECK-LABEL: f5:56; CHECK-NEXT: .functype f5 () -> (f32){{$}}57; CHECK-NEXT: unreachable58define float @f5()  {59 unreachable60}61