diff --git a/src/ImageSharp/Formats/Jpeg/Components/Block8x8F.cs b/src/ImageSharp/Formats/Jpeg/Components/Block8x8F.cs
index 0acc6408e2..8ca7b0c801 100644
--- a/src/ImageSharp/Formats/Jpeg/Components/Block8x8F.cs
+++ b/src/ImageSharp/Formats/Jpeg/Components/Block8x8F.cs
@@ -477,81 +477,6 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
DivideRoundAll(ref dest, ref qt);
}
- ///
- /// Scales the 16x16 region represented by the 4 source blocks to the 8x8 DST block.
- ///
- /// The destination block.
- /// The source block.
- public static unsafe void Scale16X16To8X8(ref Block8x8F destination, ReadOnlySpan source)
- {
-#if SUPPORTS_RUNTIME_INTRINSICS
- if (Avx2.IsSupported)
- {
- Scale16X16To8X8Vectorized(ref destination, source);
- return;
- }
-#endif
-
- Scale16X16To8X8Scalar(ref destination, source);
- }
-
- private static void Scale16X16To8X8Vectorized(ref Block8x8F destination, ReadOnlySpan source)
- {
-#if SUPPORTS_RUNTIME_INTRINSICS
- Debug.Assert(Avx2.IsSupported, "AVX2 is required to execute this method");
-
- var f2 = Vector256.Create(2f);
- var f025 = Vector256.Create(0.25f);
- Vector256 switchInnerDoubleWords = Unsafe.As>(ref MemoryMarshal.GetReference(SimdUtils.HwIntrinsics.PermuteMaskSwitchInnerDWords8x32));
- ref Vector256 destRef = ref destination.V0;
-
- for (int i = 0; i < 2; i++)
- {
- ref Vector256 in1 = ref Unsafe.Add(ref MemoryMarshal.GetReference(source), 2 * i).V0;
- ref Vector256 in2 = ref Unsafe.Add(ref MemoryMarshal.GetReference(source), (2 * i) + 1).V0;
-
- for (int j = 0; j < 8; j += 2)
- {
- Vector256 a = Unsafe.Add(ref in1, j);
- Vector256 b = Unsafe.Add(ref in1, j + 1);
- Vector256 c = Unsafe.Add(ref in2, j);
- Vector256 d = Unsafe.Add(ref in2, j + 1);
-
- Vector256 calc1 = Avx.Shuffle(a, c, 0b10_00_10_00);
- Vector256 calc2 = Avx.Shuffle(a, c, 0b11_01_11_01);
- Vector256 calc3 = Avx.Shuffle(b, d, 0b10_00_10_00);
- Vector256 calc4 = Avx.Shuffle(b, d, 0b11_01_11_01);
-
- Vector256 sum = Avx.Add(Avx.Add(calc1, calc2), Avx.Add(calc3, calc4));
- Vector256 add = Avx.Add(sum, f2);
- Vector256 res = Avx.Multiply(add, f025);
-
- destRef = Avx2.PermuteVar8x32(res, switchInnerDoubleWords);
- destRef = ref Unsafe.Add(ref destRef, 1);
- }
- }
-#endif
- }
-
- private static unsafe void Scale16X16To8X8Scalar(ref Block8x8F destination, ReadOnlySpan source)
- {
- for (int i = 0; i < 4; i++)
- {
- int dstOff = ((i & 2) << 4) | ((i & 1) << 2);
- Block8x8F iSource = source[i];
-
- for (int y = 0; y < 4; y++)
- {
- for (int x = 0; x < 4; x++)
- {
- int j = (16 * y) + (2 * x);
- float sum = iSource[j] + iSource[j + 1] + iSource[j + 8] + iSource[j + 9];
- destination[(8 * y) + x + dstOff] = (sum + 2) * .25F;
- }
- }
- }
- }
-
[MethodImpl(InliningOptions.ShortMethod)]
private static void DivideRoundAll(ref Block8x8F a, ref Block8x8F b)
{
diff --git a/tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_Scale16X16To8X8.cs b/tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_Scale16X16To8X8.cs
deleted file mode 100644
index ebd3e40130..0000000000
--- a/tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_Scale16X16To8X8.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using BenchmarkDotNet.Attributes;
-using SixLabors.ImageSharp.Formats.Jpeg.Components;
-
-namespace SixLabors.ImageSharp.Benchmarks.Format.Jpeg.Components
-{
- [Config(typeof(Config.HwIntrinsics_SSE_AVX))]
- public class Block8x8F_Scale16X16To8X8
- {
- private Block8x8F source;
- private readonly Block8x8F[] target = new Block8x8F[4];
-
- [GlobalSetup]
- public void Setup()
- {
- var random = new Random();
-
- float[] f = new float[8 * 8];
- for (int i = 0; i < f.Length; i++)
- {
- f[i] = (float)random.NextDouble();
- }
-
- for (int i = 0; i < 4; i++)
- {
- this.target[i] = Block8x8F.Load(f);
- }
-
- this.source = Block8x8F.Load(f);
- }
-
- [Benchmark]
- public void Scale16X16To8X8() => Block8x8F.Scale16X16To8X8(ref this.source, this.target);
- }
-}