Paweł Bylica
Paweł Bylica
Precise: return positive canonical NaN.
I'm not opposed to any of these. Upgrading evmone to C++20 is definitely doable. The executors and networking will not actually be part of C++23 so don't count on these....
Preliminary benchmarks: ``` ecmod_mean +0.0584 +0.0584 7 7 7 7 ecmod_mean -0.0017 -0.0017 22 22 22 22 ecmod_mean -0.0999 -0.0999 5 5 5 5 ecmod_mean +0.0210 +0.0210 12 12 12...
Confirmed, this does not affect assembly of shift operators. Proof: https://godbolt.org/z/4b6cT4rje.
On the latest compilers I don't see much difference so I'm not very much in favor because this implementation has 4 branches while the original one is branchless. But people...
I will try to clean up the situation. We are discussing 3 "less than" implementations: - "sub" - subtract two values and return the borrow flag, - "ne" - find...
I benchmarked GCC 11. In general we would need to split these into smaller changes (I can do this myself) for better analysis. Some quick takeaways: - comparison optimization looks...
> I'm not sure how to read the numbers This is comparison between master and your changes. Numbers are: - CPU time diff, - wall-clock time diff, - master CPU...
> Also why diff between add and inline_add? Because the benchmark run in a loop the "inline_add" can be vectorized. This is not relevant for EVM use case. I probably...
The main difference is that the `addc` implementation tries to use compiler builtins via `__has_builtin()` macro. This macro is not available until GCC 10 (although the builtin is supported). This...