diff --git a/HPPH/PixelHelper.MinMax.cs b/HPPH/PixelHelper.MinMax.cs index 9d72343..4fb332f 100644 --- a/HPPH/PixelHelper.MinMax.cs +++ b/HPPH/PixelHelper.MinMax.cs @@ -84,7 +84,7 @@ public static unsafe partial class PixelHelper { for (int i = 0; i < chunks; i++) { - Vector vector = *(Vector*)(colorPtr + (i * bytesPerVector)); + Vector vector = Vector.Load(colorPtr + (i * bytesPerVector)); max = Vector.Max(max, vector); min = Vector.Min(min, vector); @@ -154,7 +154,7 @@ public static unsafe partial class PixelHelper { for (int i = 0; i < chunks; i++) { - Vector vector = *(Vector*)(colorPtr + (i * bytesPerVector)); + Vector vector = Vector.Load(colorPtr + (i * bytesPerVector)); max = Vector.Max(max, vector); min = Vector.Min(min, vector); diff --git a/HPPH/PixelHelper.Sum.cs b/HPPH/PixelHelper.Sum.cs index fd6211c..6951782 100644 --- a/HPPH/PixelHelper.Sum.cs +++ b/HPPH/PixelHelper.Sum.cs @@ -133,9 +133,9 @@ public static unsafe partial class PixelHelper for (int i = 0; i < chunks; i++) { byte* basePtr = bytePtr + (i * 96); - Vector256 data1 = *(Vector256*)(basePtr); - Vector256 data2 = *(Vector256*)(basePtr + 32); - Vector256 data3 = *(Vector256*)(basePtr + 64); + Vector256 data1 = Vector256.Load(basePtr); + Vector256 data2 = Vector256.Load(basePtr + 32); + Vector256 data3 = Vector256.Load(basePtr + 64); Vector256 vectorB1Blend1 = Avx2.BlendVariable(data2, data1, blend1MaskVector); Vector256 vectorB2Blend1 = Avx2.BlendVariable(data2, data1, blend2MaskVector); @@ -222,9 +222,9 @@ public static unsafe partial class PixelHelper for (int j = 0; j < (data.Length / 8); j++, i += 8) { - Vector256 chunk = *(Vector256*)(bytePtr + (i * 4)); + Vector256 chunk = Vector256.Load(bytePtr + (i * 4)); Vector256 deinterleaved = Avx2.Shuffle(chunk, avx2ShuffleMaskVector); - Vector256 deinterleaved2 = Avx2.PermuteVar8x32(deinterleaved.AsInt32(), *(Vector256*)controlPtr); + Vector256 deinterleaved2 = Avx2.PermuteVar8x32(deinterleaved.AsInt32(), Vector256.Load(controlPtr)); Vector256 sum = Avx2.SumAbsoluteDifferences(deinterleaved2.AsByte(), Vector256.Zero).AsInt64(); rgbaSum64 = Avx2.Add(rgbaSum64, sum); }