Implement Vector128 version of System.Buffers.Text.Base64 DecodeFromUtf8 and EncodeTo...
authorAlan Hayward <a74nh@users.noreply.github.com>
Mon, 20 Jun 2022 18:02:56 +0000 (19:02 +0100)
committerGitHub <noreply@github.com>
Mon, 20 Jun 2022 18:02:56 +0000 (11:02 -0700)
commitd6d28e40b34ae98f94a9436e7c1d54fd7370676d
treef456cdab69b6483a4a5f538341329088ecb6f7a8
parent18ec279e4be9193ce838d73e7d850e3c798991fd
Implement Vector128 version of System.Buffers.Text.Base64 DecodeFromUtf8 and EncodeToUtf8 (#70654)

* Implement Vector128 version of System.Buffers.Text.Base64.DecodeFromUtf8

Rework the SS3 into a Vector128 version, and add Arm64 support.

* SSE3 improvements

* Remove superfluous bitwise And

* Add comment to SimdShuffle

* Inline SimdShuffle

* Implement Vector128 version of System.Buffers.Text.Base64.EncodeToUtf8

* Ensure masking on SSE3

Change-Id: I319f94cfc51d0542ae4eb11a8d48b3eb8180553f
CustomizedGitHooks: yes

* Restore asserts and move zero inside the loop

* Neater C# code

Change-Id: I2cbe14f4228f8035e7d213b5b58815c4eee35563
CustomizedGitHooks: yes

* Make SimdShuffle consistent across X64 and Arm64

* Better looking multiply
src/libraries/System.Memory/src/System/Buffers/Text/Base64Decoder.cs
src/libraries/System.Memory/src/System/Buffers/Text/Base64Encoder.cs