summaryrefslogtreecommitdiff
path: root/test/CodeGen/WebAssembly
diff options
context:
space:
mode:
authorJacob Gravelle <jgravelle@google.com>2017-08-24 19:53:44 +0000
committerJacob Gravelle <jgravelle@google.com>2017-08-24 19:53:44 +0000
commit73e192592efb739612c1338c5b75ddcb4a07e611 (patch)
tree943acb1f7e9686248f908781a6ea97782832784d /test/CodeGen/WebAssembly
parent3133c0dc5b1d59d9818528997eb86c641acb17a3 (diff)
[WebAssembly] FastISel : Bail to SelectionDAG for constexpr calls
Summary: Currently FastISel lowers constexpr calls as indirect calls. We'd like those to direct calls, and falling back to SelectionDAGISel handles that. Reviewers: dschuff, sunfish Subscribers: jfb, sbc100, llvm-commits, aheejin Differential Revision: https://reviews.llvm.org/D37073 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311693 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/WebAssembly')
-rw-r--r--test/CodeGen/WebAssembly/call.ll21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/CodeGen/WebAssembly/call.ll b/test/CodeGen/WebAssembly/call.ll
index 1cf42242a6c..dfa0cf5efe0 100644
--- a/test/CodeGen/WebAssembly/call.ll
+++ b/test/CodeGen/WebAssembly/call.ll
@@ -150,6 +150,27 @@ define void @coldcc_tail_call_void_nullary() {
ret void
}
+; CHECK-LABEL: call_constexpr:
+; CHECK-NEXT: i32.const $push[[L0:[0-9]+]]=, 2{{$}}
+; CHECK-NEXT: i32.const $push[[L1:[0-9]+]]=, 3{{$}}
+; CHECK-NEXT: call vararg_func@FUNCTION, $pop[[L0]], $pop[[L1]]{{$}}
+; CHECK-NEXT: call other_void_nullary@FUNCTION{{$}}
+; CHECK-NEXT: call void_nullary@FUNCTION{{$}}
+; CHECK-NEXT: return{{$}}
+declare void @vararg_func(...)
+declare void @other_void_nullary()
+define void @call_constexpr() {
+bb0:
+ call void bitcast (void (...)* @vararg_func to void (i32, i32)*)(i32 2, i32 3)
+ br label %bb1
+bb1:
+ call void select (i1 0, void ()* @void_nullary, void ()* @other_void_nullary)()
+ br label %bb2
+bb2:
+ call void inttoptr (i32 ptrtoint (void ()* @void_nullary to i32) to void ()*)()
+ ret void
+}
+
; TODO: test the following:
; - More argument combinations.
; - Tail call.