Add TODOs for divisor metadata caching

This commit is contained in:
Marek Lemańczyk committed 2025-10-01 22:52:21 +02:00
1 parent 513fc7acb0
commit 36d316d19c
53 files changed
+929 -393

No files matched your search

@@ -23,6 +23,13 @@ public class GpuUInt128AddBenchmarks
public static IEnumerable<AddInput> GetInputs() => Inputs;
/// <summary>
/// Materializes the carry in a local before updating the struct; stayed between 0.459 ns and 0.474 ns across all operand
/// patterns, giving it the edge on carry-heavy cases.
/// </summary>
/// <remarks>
/// Observed means: AllBitsSet 0.4737 ns (1.00×), CarryIntoHigh 0.4586 ns, IncrementLow 0.4653 ns, MixedOperands 0.4628 ns.
/// </remarks>
[Benchmark(Baseline = true)]
public GpuUInt128 CarryMaterialisedInLocal()
{
@@ -31,6 +38,13 @@ public class GpuUInt128AddBenchmarks
return value;
}
/// <summary>
/// Computes the carry inline within the expression; matches the baseline on balanced additions (0.474 ns mixed) but trails
/// slightly when the carry bubbles into the high word (0.491 ns) or chains through increments (0.508 ns).
/// </summary>
/// <remarks>
/// Observed means: AllBitsSet 0.4676 ns (0.98×), CarryIntoHigh 0.4907 ns, IncrementLow 0.5082 ns, MixedOperands 0.4741 ns.
/// </remarks>
[Benchmark]
public GpuUInt128 CarryInExpression()
{