diff options
| author | Thomas Lively <tlively@google.com> | 2018-09-20 22:08:27 +0000 |
|---|---|---|
| committer | Thomas Lively <tlively@google.com> | 2018-09-20 22:08:27 +0000 |
| commit | bb993db080391241b390f8408ff12c16b1e29a84 (patch) | |
| tree | 4e9df852dda49ae8caf44e484163f6dbf79018a1 /llvm | |
| parent | d661e265c71e284109f9e233b3aa0422fb3fd559 (diff) | |
| download | bcm5719-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.ll | 33 |
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{{$}} |

