Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
TechPizzaDev committed Jan 17, 2025
2 parents 21b1992 + ebcbcc3 commit 2b84c5a
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions NVorbis/Vector128Helper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,18 @@ static Vector128<float> SoftwareFallback(
Vector128<int> index,
byte scale)
{
Unsafe.SkipInit(out Vector128<float> result);
result = result.WithElement(0, baseAddress[(long) index.GetElement(0) * scale]);
result = result.WithElement(1, baseAddress[(long) index.GetElement(1) * scale]);
result = result.WithElement(2, baseAddress[(long) index.GetElement(2) * scale]);
result = result.WithElement(3, baseAddress[(long) index.GetElement(3) * scale]);
return result;
return Vector128.Create(
*ByteOffset(baseAddress, (nuint)index.GetElement(0) * scale),
*ByteOffset(baseAddress, (nuint)index.GetElement(1) * scale),
*ByteOffset(baseAddress, (nuint)index.GetElement(2) * scale),
*ByteOffset(baseAddress, (nuint)index.GetElement(3) * scale)
);
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
static T* ByteOffset<T>(T* baseAddress, nuint byteOffset) where T : unmanaged
{
return (T*)((byte*)baseAddress + byteOffset);
}
}
}
Expand Down

0 comments on commit 2b84c5a

Please sign in to comment.