-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
DemoteFloat16 pass ignores vectors of Float16 #45881
Comments
This was fixed in #45249, until we decided to say that performance was more important than correctness and reverted it |
Ah great that we have the code already :) Would have been great if the fixed for the conversion routine and the other correctness fixes were not co-mingled. |
They aren't co-mingled really, you just have to pick a name for the function (or intrinsic) to call here https://github.com/JuliaLang/julia/pull/45249/files#diff-d6a6d037fdf95b0875b7d800187abc42b7ef9abf7004e36ad3ef392655144631R140 |
It also ignores |
The point of |
I thought generating float16 instructions when not available was bad, but it seems llvm just adds the conversions if necessary when generating native code |
Then why we have the demotion pass in Julia again? 😬 |
I don't know :) |
As noticed by @giordano in #40308 (comment), when LLVM decided to vectorize, the demote Float16 pass doesn't trigger. Presumably this is due to
julia/src/llvm-demote-float16.cpp
Line 82 in fec6951
T_float16
and not a vector ofFloat16
.While it is nice that it currently "accidentally" works, since we want on A64FX to trigger the emission of native Float16 operations,
we should fix this bug and simultaneously address #40216
The text was updated successfully, but these errors were encountered: