-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support f16
and f128
#1461
Comments
This will need direct Cranelift support. Back ib the day before Cranelift had native 128bit int support I had a whole bunch of hacks to make it work. They were really fragile and I don't think they will work anymore for the current structure of cg_clif. |
What all would be needed for clif to support these in a minimal state? |
At a minimum Cranelift support for the f16 and f128 values. And either Cranelift support for float instructions for these types or emulation in cg_clif using libm calls in rustc_codegen_cranelift/src/num.rs Lines 313 to 363 in 8c46d93
rustc_codegen_cranelift/src/intrinsics/mod.rs Lines 309 to 349 in 8c46d93
|
It seems like the frontend is now hooked up and this is used in some sysroot crates like |
|
Ah yes, I'd found the
|
As of rust-lang/rust#121728, the backends now have stubs for
f16
andf128
: https://github.com/rust-lang/rust/blob/6cbf0926d54c80ea6d15df333be9281f65bbeb36/compiler/rustc_codegen_cranelift/src/common.rs#L36-L39.It will be a while before these codepaths can even be exercised since the frontend isn't hooked up yet, but at some point this should be changed to either gracefully fail or do the right thing.
The text was updated successfully, but these errors were encountered: