From e590b33bf88561c1a5b9ae76823562b16934d2cd Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 9 Sep 2015 01:52:45 +0000 Subject: [WebAssembly] Fix lowering of calls with more than one argument. llvm-svn: 247118 --- llvm/test/CodeGen/WebAssembly/call.ll | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'llvm/test/CodeGen/WebAssembly/call.ll') diff --git a/llvm/test/CodeGen/WebAssembly/call.ll b/llvm/test/CodeGen/WebAssembly/call.ll index d0ad7fd3edf..d628ec09630 100644 --- a/llvm/test/CodeGen/WebAssembly/call.ll +++ b/llvm/test/CodeGen/WebAssembly/call.ll @@ -7,6 +7,7 @@ target triple = "wasm32-unknown-unknown" declare i32 @i32_nullary() declare i32 @i32_unary(i32) +declare i32 @i32_binary(i32, i32) declare i64 @i64_nullary() declare float @float_nullary() declare double @double_nullary() @@ -62,6 +63,18 @@ define i32 @call_i32_unary(i32 %a) { ret i32 %r } +; CHECK-LABEL: (func $call_i32_binary +; CHECK-NEXT: (param i32) (param i32) (result i32) +; CHECK-NEXT: (setlocal @0 (argument 1)) +; CHECK-NEXT: (setlocal @1 (argument 0)) +; CHECK-NEXT: (setlocal @2 (global $i32_binary)) +; CHECK-NEXT: (setlocal @3 (call @2 @1 @0)) +; CHECK-NEXT: (return @3) +define i32 @call_i32_binary(i32 %a, i32 %b) { + %r = call i32 @i32_binary(i32 %a, i32 %b) + ret i32 %r +} + ; FIXME test the following: ; - Functions without return. ; - More argument combinations. -- cgit v1.2.3