diff --git a/src/ImageSharp/Common/Helpers/InliningOptions.cs b/src/ImageSharp/Common/Helpers/InliningOptions.cs
index f61e4f8aef..ad85c4fc81 100644
--- a/src/ImageSharp/Common/Helpers/InliningOptions.cs
+++ b/src/ImageSharp/Common/Helpers/InliningOptions.cs
@@ -2,7 +2,7 @@
// Licensed under the Apache License, Version 2.0.
// Uncomment this for verbose profiler results:
-#define PROFILING
+// #define PROFILING
using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp
diff --git a/src/ImageSharp/Common/Helpers/SimdUtils.ExtendedIntrinsics.cs b/src/ImageSharp/Common/Helpers/SimdUtils.ExtendedIntrinsics.cs
index 463961d868..9aeb209319 100644
--- a/src/ImageSharp/Common/Helpers/SimdUtils.ExtendedIntrinsics.cs
+++ b/src/ImageSharp/Common/Helpers/SimdUtils.ExtendedIntrinsics.cs
@@ -28,7 +28,7 @@ namespace SixLabors.ImageSharp
///
/// Widen and convert a vector of values into 2 vectors of -s.
///
- [MethodImpl(InliningOptions.ShortMethod)]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static void ConvertToSingle(
Vector source,
out Vector dest1,
diff --git a/tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg.cs b/tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg.cs
index 2afacb1e4f..57dcede88d 100644
--- a/tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg.cs
+++ b/tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg.cs
@@ -76,5 +76,14 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg
// | | | | | | | | | |
// 'Decode Jpeg - System.Drawing' | Core | Jpg/baseline/jpeg420exif.jpg | 17.45 ms | 2.092 ms | 0.1182 ms | 1.00 | 0.00 | 218.7500 | 757.04 KB |
// 'Decode Jpeg - ImageSharp' | Core | Jpg/baseline/jpeg420exif.jpg | 48.39 ms | 14.562 ms | 0.8228 ms | 2.77 | 0.04 | 125.0000 | 529.96 KB |
+
+ // RESULTS (2018 November 1):
+ // Method | Runtime | TestImage | Mean | Error | StdDev | Scaled | ScaledSD | Gen 0 | Allocated |
+ // ------------------------------- |-------- |----------------------------- |---------:|----------:|----------:|-------:|---------:|---------:|----------:|
+ // 'Decode Jpeg - System.Drawing' | Clr | Jpg/baseline/jpeg420exif.jpg | 17.59 ms | 4.611 ms | 0.2605 ms | 1.00 | 0.00 | 218.7500 | 757.88 KB |
+ // 'Decode Jpeg - ImageSharp' | Clr | Jpg/baseline/jpeg420exif.jpg | 55.33 ms | 2.133 ms | 0.1205 ms | 3.15 | 0.04 | 125.0000 | 566.01 KB |
+ // | | | | | | | | | |
+ // 'Decode Jpeg - System.Drawing' | Core | Jpg/baseline/jpeg420exif.jpg | 17.83 ms | 24.326 ms | 1.3745 ms | 1.00 | 0.00 | 218.7500 | 757.04 KB |
+ // 'Decode Jpeg - ImageSharp' | Core | Jpg/baseline/jpeg420exif.jpg | 44.93 ms | 3.088 ms | 0.1745 ms | 2.53 | 0.15 | 125.0000 | 529.96 KB |
}
}
diff --git a/tests/ImageSharp.Benchmarks/General/Block8x8F_LoadFromInt16.cs b/tests/ImageSharp.Benchmarks/General/Block8x8F_LoadFromInt16.cs
new file mode 100644
index 0000000000..34847148bf
--- /dev/null
+++ b/tests/ImageSharp.Benchmarks/General/Block8x8F_LoadFromInt16.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Numerics;
+
+using BenchmarkDotNet.Attributes;
+
+using SixLabors.ImageSharp.Formats.Jpeg.Components;
+
+namespace SixLabors.ImageSharp.Benchmarks.General
+{
+ public class Block8x8F_LoadFromInt16
+ {
+ private Block8x8 source;
+
+ private Block8x8F dest = default;
+
+ [GlobalSetup]
+ public void Setup()
+ {
+ if (Vector.Count != 8)
+ {
+ throw new NotSupportedException("Vector.Count != 8");
+ }
+
+ for (short i = 0; i < Block8x8F.Size; i++)
+ {
+ this.source[i] = i;
+ }
+ }
+
+ [Benchmark(Baseline = true)]
+ public void Scalar()
+ {
+ this.dest.LoadFromInt16Scalar(ref this.source);
+ }
+
+ [Benchmark]
+ public void ExtendedAvx2()
+ {
+ this.dest.LoadFromInt16ExtendedAvx2(ref this.source);
+ }
+
+ // RESULT:
+ // Method | Mean | Error | StdDev | Scaled |
+ // ------------- |---------:|----------:|----------:|-------:|
+ // Scalar | 34.88 ns | 0.3296 ns | 0.3083 ns | 1.00 |
+ // ExtendedAvx2 | 21.58 ns | 0.2125 ns | 0.1884 ns | 0.62 |
+ }
+}
\ No newline at end of file