csFastFloat
csFastFloat copied to clipboard
The code below can be simplified using `SSE2.MoveMask()` if `SSE2` is available. https://github.com/CarlVerret/csFastFloat/blob/76d6a2e76a6d3c1f90a7f4b9747661979158e7e4/csFastFloat/Utils/Utils.cs#L283-L292 ````csharp if (Sse2.IsSupported) { currentSseMask = (uint)Sse2.MoveMask(Sse2.LoadVector128(pBuffer)); // unaligned load if (currentSseMask != 0) { Console.WriteLine("Non-Ascii byte...
Initially, SIMD code supports only x64 processors, but it should be simple to add support for ARM NEON as well.
Same here, hoist manually. I have to admit that the code doesn't look as nice then, but from some previous work (in other parsers / validators) there was always a...
I guess the JIT isn't able to hoist these "constants" outside the loop. As the caller is also guarded by `#if HAS_INTRINSICS` you could hoist these manually, and pass them...
I consider this file as build-artifact, so it doesn't need to be checked in. Not the scope for this PR, but as idea: With https://dotnet.github.io/docfx you can create a static...
Additional: * remove `movsxd`, as they're not needed * used C# language to denote if an argument should be ignored
In C#... ```C# System.Buffers.Text.Utf8Parser.TryParse(x, out double d, out int consumed) ``` will *not* skip leading spaces whereas ```C# Double.Parse(" 11 ") ``` will... Meanwhile, the csFastFloat functions *always* skip leading...
It would be nice if the code followed "normal" C# formatting and simply used "dotnet format" as part of workflow and CI. Since I use format on save I had...