summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2018-09-20 22:08:27 +0000
committerThomas Lively <tlively@google.com>2018-09-20 22:08:27 +0000
commitbb993db080391241b390f8408ff12c16b1e29a84 (patch)
tree4e9df852dda49ae8caf44e484163f6dbf79018a1 /llvm
parentd661e265c71e284109f9e233b3aa0422fb3fd559 (diff)
downloadbcm5719-llvm-bb993db080391241b390f8408ff12c16b1e29a84.tar.gz
bcm5719-llvm-bb993db080391241b390f8408ff12c16b1e29a84.zip
[WebAssembly][NFC] Add missing tests for indirect calls
Summary: Depends on D52105. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52254 llvm-svn: 342691
Diffstat (limited to 'llvm')
-rw-r--r--llvm/test/CodeGen/WebAssembly/call.ll33
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/call.ll b/llvm/test/CodeGen/WebAssembly/call.ll
index 9ed434128e7..eaa583f8a02 100644
--- a/llvm/test/CodeGen/WebAssembly/call.ll
+++ b/llvm/test/CodeGen/WebAssembly/call.ll
@@ -112,6 +112,39 @@ define i32 @call_indirect_i32(i32 ()* %callee) {
ret i32 %t
}
+; CHECK-LABEL: call_indirect_i64:
+; CHECK-NEXT: .param i32{{$}}
+; CHECK-NEXT: .result i64{{$}}
+; CHECK-NEXT: get_local $push[[L0:[0-9]+]]=, 0{{$}}
+; CHECK-NEXT: {{^}} i64.call_indirect $push[[NUM:[0-9]+]]=, $pop[[L0]]{{$}}
+; CHECK-NEXT: return $pop[[NUM]]{{$}}
+define i64 @call_indirect_i64(i64 ()* %callee) {
+ %t = call i64 %callee()
+ ret i64 %t
+}
+
+; CHECK-LABEL: call_indirect_float:
+; CHECK-NEXT: .param i32{{$}}
+; CHECK-NEXT: .result f32{{$}}
+; CHECK-NEXT: get_local $push[[L0:[0-9]+]]=, 0{{$}}
+; CHECK-NEXT: {{^}} f32.call_indirect $push[[NUM:[0-9]+]]=, $pop[[L0]]{{$}}
+; CHECK-NEXT: return $pop[[NUM]]{{$}}
+define float @call_indirect_float(float ()* %callee) {
+ %t = call float %callee()
+ ret float %t
+}
+
+; CHECK-LABEL: call_indirect_double:
+; CHECK-NEXT: .param i32{{$}}
+; CHECK-NEXT: .result f64{{$}}
+; CHECK-NEXT: get_local $push[[L0:[0-9]+]]=, 0{{$}}
+; CHECK-NEXT: {{^}} f64.call_indirect $push[[NUM:[0-9]+]]=, $pop[[L0]]{{$}}
+; CHECK-NEXT: return $pop[[NUM]]{{$}}
+define double @call_indirect_double(double ()* %callee) {
+ %t = call double %callee()
+ ret double %t
+}
+
; CHECK-LABEL: call_indirect_v128:
; CHECK-NEXT: .param i32{{$}}
; CHECK-NEXT: .result v128{{$}}
OpenPOWER on IntegriCloud