WTH 😅 #dotnet 8 vs 9 SIMD output is different for simple float to byte conversion apparently due to Vector.ConvertToUInt output is now different?
cc @tannergooding
.NET SDK 9.0.101, x64, AMD 5950X
=> View attached media | View attached media
=> More informations about this toot | More toots from nietras@mastodon.social
@tannergooding arguably the output is more consistent with (byte)(uint) output so perhaps this is why this has changed, just surprised by the silent change.
=> More informations about this toot | More toots from nietras@mastodon.social
@nietras this is https://learn.microsoft.com/en-us/dotnet/core/compatibility/jit/9.0/fp-to-integer
It's also notably not so much a break as the behavior was previously non-deterministic and depended on the underlying hardware (x64 vs Arm64 vs WASM vs ...; or even just on x64: SSE vs AVX vs AVX512 vs AVX10v2 vs ...)
It's rather a change to ensure determinism with new APIs such as ConvertToUInt32Native
that give you the faster non-deterministic behavior if you absolutely need it and aren't broken by it being non-deterministic
=> More informations about this toot | More toots from tannergooding@dotnet.social This content has been proxied by September (3851b).Proxy Information
text/gemini