dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 996 Improvements on 6/25/2026 3:50:04 PM +00:00

Open
#76,038 38 comments 0 reactions 0 assignees View on GitHub
arch-wasm arch-x64 branch-refs/heads/main compilationmode-wasm kind-micro Look Again os-linux perf-improvement runkind-micro runtimetype-coreclr untriaged
Dominant language
No language data
Stars
10
Forks
8
PR merge metrics
PR metrics pending

Description

### Run Information

Name | Value
-- | --
Architecture | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [818cfd5edcda78ac3eb201af392fd301ab9ad46b](https://github.com/dotnet/runtime/commit/818cfd5edcda78ac3eb201af392fd301ab9ad46b)
Compare | [4e28c96c3bd32ce2811ef7128641e8926874020e](https://github.com/dotnet/runtime/commit/4e28c96c3bd32ce2811ef7128641e8926874020e)
Diff | [Diff](https://github.com/dotnet/runtime/compare/818cfd5edcda78ac3eb201af392fd301ab9ad46b...4e28c96c3bd32ce2811ef7128641e8926874020e)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Improvements in System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [InequalityOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 700.93 ns | 548.91 ns | 0.78 | 0.27 | False | | |
|
  • [AddOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.71 μs | 1.35 μs | 0.79 | 0.27 | False | | |
|
  • [LessThanBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.72 μs | 1.38 μs | 0.80 | 0.21 | False | | |
|
  • [NegateBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.74 μs | 1.40 μs | 0.80 | 0.17 | False | | |
|
  • [BitwiseOrOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 947.59 ns | 764.54 ns | 0.81 | 0.23 | False | | |
|
  • [LessThanAllBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 645.68 ns | 521.15 ns | 0.81 | 0.23 | False | | |
|
  • [CountBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 68.35 ns | 55.20 ns | 0.81 | 0.19 | False | | |
|
  • [LessThanOrEqualAnyBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1176.54 ns | 963.61 ns | 0.82 | 0.19 | False | | |
|
  • [EqualsStaticBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.71 μs | 1.41 μs | 0.82 | 0.21 | False | | |
|
  • [GreaterThanOrEqualBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.69 μs | 1.39 μs | 0.82 | 0.22 | False | | |
|
  • [EqualsAnyBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1167.98 ns | 962.40 ns | 0.82 | 0.22 | False | | |
|
  • [LessThanAnyBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1159.40 ns | 956.53 ns | 0.83 | 0.18 | False | | |
|
  • [LessThanOrEqualAllBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 637.36 ns | 527.52 ns | 0.83 | 0.22 | False | | |
|
  • [DivisionOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.65 μs | 1.37 μs | 0.83 | 0.23 | False | | |
|
  • [GreaterThanAnyBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1164.25 ns | 972.88 ns | 0.84 | 0.20 | False | | |
|
  • [DivideBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.68 μs | 1.41 μs | 0.84 | 0.20 | False | | |
|
  • [UnaryNegateOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.62 μs | 1.36 μs | 0.84 | 0.20 | False | | |
|
  • [SubtractionOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.67 μs | 1.41 μs | 0.84 | 0.22 | False | | |
|
  • [GreaterThanOrEqualAllBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 638.14 ns | 540.42 ns | 0.85 | 0.24 | False | | |
|
  • [OnesComplementOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 707.34 ns | 601.19 ns | 0.85 | 0.19 | False | | |
|
  • [ExclusiveOrOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 896.62 ns | 762.78 ns | 0.85 | 0.20 | False | | |
|
  • [LessThanOrEqualBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.69 μs | 1.44 μs | 0.85 | 0.22 | False | | |
|
  • [XorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 925.25 ns | 796.82 ns | 0.86 | 0.24 | False | | |
|
  • [OnesComplementBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 712.89 ns | 619.54 ns | 0.87 | 0.21 | False | | |
|
  • [AllBitsSetBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 715.08 ns | 621.81 ns | 0.87 | 0.23 | False | | |
|
  • [EqualsBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.46 μs | 1.27 μs | 0.87 | 0.21 | False | | |
|
  • [GreaterThanAllBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 644.77 ns | 561.09 ns | 0.87 | 0.23 | False | | |
|
  • [AbsBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.82 μs | 1.61 μs | 0.88 | 0.18 | False | | |
|
  • [ConditionalSelectBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.95 μs | 2.61 μs | 0.89 | 0.18 | False | | |
|
  • [EqualsAllBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 666.40 ns | 593.04 ns | 0.89 | 0.24 | False | | |
|
  • [MultiplyOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.67 μs | 1.50 μs | 0.90 | 0.23 | False | | |
|
  • [MultiplyBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.68 μs | 1.52 μs | 0.91 | 0.15 | False | | |

![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of*'
```

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.InequalityOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.AddOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.LessThanBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.NegateBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.BitwiseOrOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.LessThanAllBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.CountBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.LessThanOrEqualAnyBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.EqualsStaticBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.GreaterThanOrEqualBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.EqualsAnyBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.LessThanAnyBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.LessThanOrEqualAllBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.DivisionOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.GreaterThanAnyBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.DivideBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.UnaryNegateOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.SubtractionOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.GreaterThanOrEqualAllBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.OnesComplementOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.ExclusiveOrOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.LessThanOrEqualBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.XorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.OnesComplementBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.AllBitsSetBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.EqualsBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.GreaterThanAllBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.AbsBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.ConditionalSelectBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.EqualsAllBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.MultiplyOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.MultiplyBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked benchmark source, src/benchmarks/micro/libraries/System.Runtime.Intrinsics/Perf_Vector128OfT.cs, and review the reported System.Runtime.Intrinsics.Tests.Perf_Vector128Of results and comparison links. Determine whether the improvement requires follow-up in the benchmark or runtime and document the triage outcome; the issue does not define a specific code change or test target.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, ubuntu, wasm
Domain
performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.