-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Regressions in System.Numerics.Tests.Constructor #68410
Comments
Introduced in #65803 @SingleAccretion |
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsRun Information
Regressions in System.Numerics.Tests.Constructor
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Numerics.Tests.Constructor*' PayloadsHistogramSystem.Numerics.Tests.Constructor.SpanCastBenchmark_Double
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
|
So the assembly diff here is very simple: mov eax,2
mul edx
mov [ebp+0FFF0],eax
mov [ebp+0FFF4],edx
- mov eax,[ebp+0FFF0]
- mov edx,[ebp+0FFF4]
- push edx
- push eax
+ push [ebp+0FFF4]
+ push [ebp+0FFF0]
push 0
push 10
call CORINFO_HELP_ULDIV And I can reproduce the time difference. To test things out, I've created a Here are the benchmarking results:
So it looks to me like an alignment-induced regression. I don't think we can do anything specifically related to #65803 here. I suppose the benchmark's performance will be improved nicely once we implement long multi-regs on x86 (which should not be too involved for this specific The regressions in #4380 look related to #67335, will investigate those next. |
Run Information
Regressions in System.Numerics.Tests.Constructor
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Numerics.Tests.Constructor.SpanCastBenchmark_Double
Description of detection logic
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: