diff --git a/tests/ImageSharp.Tests/Formats/Jpg/Utils/ReferenceImplementations.AccurateDCT.cs b/tests/ImageSharp.Tests/Formats/Jpg/Utils/ReferenceImplementations.AccurateDCT.cs index 23e047bd8..fc0540c64 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/Utils/ReferenceImplementations.AccurateDCT.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/Utils/ReferenceImplementations.AccurateDCT.cs @@ -113,7 +113,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils private static double[,] InitCosLut() { - var coslu = new double[8, 8]; + double[,] coslu = new double[8, 8]; int a, b; double tmp; diff --git a/tests/ImageSharp.Tests/Formats/Jpg/Utils/ReferenceImplementations.LLM_FloatingPoint_DCT.cs b/tests/ImageSharp.Tests/Formats/Jpg/Utils/ReferenceImplementations.LLM_FloatingPoint_DCT.cs index 82f0080c0..b3dafdbb8 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/Utils/ReferenceImplementations.LLM_FloatingPoint_DCT.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/Utils/ReferenceImplementations.LLM_FloatingPoint_DCT.cs @@ -168,23 +168,23 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils /// Destination public static void FDCT2D8x4_32f(Span s, Span d) { - Vector4 c0 = Mm_load_ps(s, 0); - Vector4 c1 = Mm_load_ps(s, 56); + Vector4 c0 = _mm_load_ps(s, 0); + Vector4 c1 = _mm_load_ps(s, 56); Vector4 t0 = c0 + c1; Vector4 t7 = c0 - c1; - c1 = Mm_load_ps(s, 48); - c0 = Mm_load_ps(s, 8); + c1 = _mm_load_ps(s, 48); + c0 = _mm_load_ps(s, 8); Vector4 t1 = c0 + c1; Vector4 t6 = c0 - c1; - c1 = Mm_load_ps(s, 40); - c0 = Mm_load_ps(s, 16); + c1 = _mm_load_ps(s, 40); + c0 = _mm_load_ps(s, 16); Vector4 t2 = c0 + c1; Vector4 t5 = c0 - c1; - c0 = Mm_load_ps(s, 24); - c1 = Mm_load_ps(s, 32); + c0 = _mm_load_ps(s, 24); + c1 = _mm_load_ps(s, 32); Vector4 t3 = c0 + c1; Vector4 t4 = c0 - c1; @@ -205,9 +205,9 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils c1 = t1 + t2; c2 = t1 - t2; */ - Mm_store_ps(d, 0, c0 + c1); + _mm_store_ps(d, 0, c0 + c1); - Mm_store_ps(d, 32, c0 - c1); + _mm_store_ps(d, 32, c0 - c1); /*y[0] = c0 + c1; y[4] = c0 - c1;*/ @@ -215,9 +215,9 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils var w0 = new Vector4(0.541196f); var w1 = new Vector4(1.306563f); - Mm_store_ps(d, 16, (w0 * c2) + (w1 * c3)); + _mm_store_ps(d, 16, (w0 * c2) + (w1 * c3)); - Mm_store_ps(d, 48, (w0 * c3) - (w1 * c2)); + _mm_store_ps(d, 48, (w0 * c3) - (w1 * c2)); /* y[2] = c2 * r[6] + c3 * r[2]; y[6] = c3 * r[6] - c2 * r[2]; @@ -241,23 +241,22 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils c1 = t6 * r[1] - t5 * r[7]; */ - Mm_store_ps(d, 24, c0 - c2); + _mm_store_ps(d, 24, c0 - c2); - Mm_store_ps(d, 40, c3 - c1); + _mm_store_ps(d, 40, c3 - c1); // y[5] = c3 - c1; y[3] = c0 - c2; var invsqrt2 = new Vector4(0.707107f); c0 = (c0 + c2) * invsqrt2; c3 = (c3 + c1) * invsqrt2; - /* c0 = (c0 + c2) * invsqrt2; - c3 = (c3 + c1) * invsqrt2; */ - Mm_store_ps(d, 8, c0 + c3); + // c0 = (c0 + c2) * invsqrt2; + // c3 = (c3 + c1) * invsqrt2; + _mm_store_ps(d, 8, c0 + c3); + _mm_store_ps(d, 56, c0 - c3); - Mm_store_ps(d, 56, c0 - c3); - /* y[1] = c0 + c3; y[7] = c0 - c3; - - for(i = 0;i < 8;i++) + // y[1] = c0 + c3; y[7] = c0 - c3; + /*for(i = 0;i < 8;i++) { y[i] *= invsqrt2h; }*/ @@ -279,49 +278,39 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils var c = new Vector4(0.1250f); - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 0 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 1 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 2 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 3 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 4 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 5 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 6 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 7 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 8 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 9 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 10 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 11 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 12 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 13 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 14 - Mm_store_ps(d, 0, Mm_load_ps(d, 0) * c); - d = d.Slice(4); // 15 +#pragma warning disable SA1107 // Code should not contain multiple statements on one line + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 0 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 1 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 2 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 3 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 4 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 5 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 6 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 7 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 8 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 9 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 10 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 11 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 12 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 13 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 14 + _mm_store_ps(d, 0, _mm_load_ps(d, 0) * c); d = d.Slice(4); // 15 +#pragma warning restore SA1107 // Code should not contain multiple statements on one line } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static Vector4 Mm_load_ps(Span src, int offset) +#pragma warning disable SA1300 // Element should begin with upper-case letter + private static Vector4 _mm_load_ps(Span src, int offset) +#pragma warning restore SA1300 // Element should begin with upper-case letter { src = src.Slice(offset); return new Vector4(src[0], src[1], src[2], src[3]); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static void Mm_store_ps(Span dest, int offset, Vector4 src) +#pragma warning disable SA1300 // Element should begin with upper-case letter + private static void _mm_store_ps(Span dest, int offset, Vector4 src) +#pragma warning restore SA1300 // Element should begin with upper-case letter { dest = dest.Slice(offset); dest[0] = src.X; @@ -369,7 +358,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils float a0,a1,a2,a3,b0,b1,b2,b3; float z0,z1,z2,z3,z4; float r[8]; int i; for(i = 0;i < 8;i++){ r[i] = (float)(cos((double)i / 16.0 * M_PI) * M_SQRT2); } */ - /* 0: 1.414214 1: 1.387040 @@ -381,20 +369,20 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils 7: 0.275899 */ - Vector4 my1 = Mm_load_ps(y, 8); - Vector4 my7 = Mm_load_ps(y, 56); + Vector4 my1 = _mm_load_ps(y, 8); + Vector4 my7 = _mm_load_ps(y, 56); Vector4 mz0 = my1 + my7; - Vector4 my3 = Mm_load_ps(y, 24); + Vector4 my3 = _mm_load_ps(y, 24); Vector4 mz2 = my3 + my7; - Vector4 my5 = Mm_load_ps(y, 40); + Vector4 my5 = _mm_load_ps(y, 40); Vector4 mz1 = my3 + my5; Vector4 mz3 = my1 + my5; Vector4 mz4 = (mz0 + mz1) * _1_175876; - /* z0 = y[1] + y[7]; z1 = y[3] + y[5]; z2 = y[3] + y[7]; z3 = y[1] + y[5]; - z4 = (z0 + z1) * r[3];*/ + // z0 = y[1] + y[7]; z1 = y[3] + y[5]; z2 = y[3] + y[7]; z3 = y[1] + y[5]; + // z4 = (z0 + z1) * r[3]; mz2 = (mz2 * _1_961571) + mz4; mz3 = (mz3 * _0_390181) + mz4; mz0 = mz0 * _0_899976; @@ -426,11 +414,11 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils b0 = y[1] * ( r[1] + r[3] - r[5] - r[7]) + z0 + z3; */ - Vector4 my2 = Mm_load_ps(y, 16); - Vector4 my6 = Mm_load_ps(y, 48); + Vector4 my2 = _mm_load_ps(y, 16); + Vector4 my6 = _mm_load_ps(y, 48); mz4 = (my2 + my6) * _0_541196; - Vector4 my0 = Mm_load_ps(y, 0); - Vector4 my4 = Mm_load_ps(y, 32); + Vector4 my0 = _mm_load_ps(y, 0); + Vector4 my4 = _mm_load_ps(y, 32); mz0 = my0 + my4; mz1 = my0 - my4; @@ -441,7 +429,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils my3 = mz0 - mz3; my1 = mz1 + mz2; my2 = mz1 - mz2; - /* 1.847759 0.765367 @@ -453,22 +440,21 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils a1 = z1 + z2; a2 = z1 - z2; */ - Mm_store_ps(x, 0, my0 + mb0); - - Mm_store_ps(x, 56, my0 - mb0); + _mm_store_ps(x, 0, my0 + mb0); - Mm_store_ps(x, 8, my1 + mb1); + _mm_store_ps(x, 56, my0 - mb0); - Mm_store_ps(x, 48, my1 - mb1); + _mm_store_ps(x, 8, my1 + mb1); - Mm_store_ps(x, 16, my2 + mb2); + _mm_store_ps(x, 48, my1 - mb1); - Mm_store_ps(x, 40, my2 - mb2); + _mm_store_ps(x, 16, my2 + mb2); - Mm_store_ps(x, 24, my3 + mb3); + _mm_store_ps(x, 40, my2 - mb2); - Mm_store_ps(x, 32, my3 - mb3); + _mm_store_ps(x, 24, my3 + mb3); + _mm_store_ps(x, 32, my3 - mb3); /* x[0] = a0 + b0; x[7] = a0 - b0; x[1] = a1 + b1; x[6] = a1 - b1; @@ -496,7 +482,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils const float invsqrt2 = 0.707107f; // (float)(1.0f / M_SQRT2); - // const float invsqrt2h = 0.353554f; // invsqrt2*0.5f; + // const float invsqrt2h = 0.353554f; //invsqrt2*0.5f; c1 = x[0]; c2 = x[7]; t0 = c1 + c2;