diff options
author | Sam Clegg <sbc@chromium.org> | 2020-02-07 18:20:03 -0800 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2020-02-07 20:30:47 -0800 |
commit | caeb6cfbc28088fcb5363b2961df888501ca8a47 (patch) | |
tree | 594cf7fd6399324443aeb297bc41cced532fc641 /llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp | |
parent | 6ef4786dbcd47cfe346ee8679ba0b4d320da797d (diff) | |
download | llvm-caeb6cfbc28088fcb5363b2961df888501ca8a47.zip llvm-caeb6cfbc28088fcb5363b2961df888501ca8a47.tar.gz llvm-caeb6cfbc28088fcb5363b2961df888501ca8a47.tar.bz2 |
[WebAssembly] Fix signature of __powitf2 libcall
Add tests for @llvm.powi.f64/f128.
See: https://llvm.org/docs/LangRef.html#llvm-powi-intrinsic
Differential Revision: https://reviews.llvm.org/D74274
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp index c6cf7b6..1ad7720e 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp @@ -82,6 +82,7 @@ enum RuntimeLibcallSignature { func_iPTR_i32, func_iPTR_i64, func_iPTR_i64_i64, + func_iPTR_i64_i64_i32, func_iPTR_i64_i64_i64_i64, func_iPTR_i64_i64_i64_i64_i64_i64, i32_func_i64_i64, @@ -173,7 +174,7 @@ struct RuntimeLibcallSignatureTable { Table[RTLIB::FMA_F128] = func_iPTR_i64_i64_i64_i64_i64_i64; Table[RTLIB::POWI_F32] = f32_func_f32_i32; Table[RTLIB::POWI_F64] = f64_func_f64_i32; - Table[RTLIB::POWI_F128] = func_iPTR_i64_i64_i64_i64; + Table[RTLIB::POWI_F128] = func_iPTR_i64_i64_i32; Table[RTLIB::SQRT_F32] = f32_func_f32; Table[RTLIB::SQRT_F64] = f64_func_f64; Table[RTLIB::SQRT_F128] = func_iPTR_i64_i64; @@ -829,6 +830,12 @@ void llvm::getLibcallSignature(const WebAssemblySubtarget &Subtarget, Params.push_back(wasm::ValType::I64); Params.push_back(wasm::ValType::I64); break; + case func_iPTR_i64_i64_i32: + Params.push_back(PtrTy); + Params.push_back(wasm::ValType::I64); + Params.push_back(wasm::ValType::I64); + Params.push_back(wasm::ValType::I32); + break; case func_iPTR_i64_i64_i64_i64: Params.push_back(PtrTy); Params.push_back(wasm::ValType::I64); |