Configure f16 and f128 support for WebAssembly

This commit is contained in:
Kleis Auke Wolthuizen 2024-08-11 11:36:25 +02:00
parent 5b0a37387c
commit 5dad727bdc
2 changed files with 5 additions and 2 deletions

View file

@ -283,6 +283,8 @@ fn configure_f16_f128(target: &Target) {
"powerpc64" if &target.os == "aix" => (true, false),
// `f128` crashes <https://github.com/llvm/llvm-project/issues/41838>
"sparc" | "sparcv9" => (true, false),
// `f16` miscompiles <https://github.com/llvm/llvm-project/issues/96438>
"wasm32" | "wasm64" => (false, true),
// Most everything else works as of LLVM 19
_ => (true, true),
};

View file

@ -54,8 +54,9 @@ fn main() {
|| target.starts_with("i586-")
|| target.contains("windows-")
// Linking says "error: function signature mismatch: __extendhfsf2" and seems to
// think the signature is either `(i32) -> f32` or `(f32) -> f32`
|| target.starts_with("wasm32-")
// think the signature is either `(i32) -> f32` or `(f32) -> f32`. See
// <https://github.com/llvm/llvm-project/issues/96438>.
|| target.starts_with("wasm")
{
features.insert(Feature::NoSysF16);
features.insert(Feature::NoSysF16F128Convert);