swift
Expand vectorized UTF16 transcoding to non-ASCII BMP code points
#88342
Open

Expand vectorized UTF16 transcoding to non-ASCII BMP code points #88342

Catfish-Man wants to merge 48 commits into main from asciivec-3
Catfish-Man
Catfish-Man WIP vectorization for UTF16->UTF8
6ae47a3f
Catfish-Man Lots of fixes
246939c5
Catfish-Man Fun fact: UInt16 is not the same size as UInt8
f85efe5a
Catfish-Man See if the scalar version autovectorizes on arm64 too
4b84ced2
Catfish-Man Build fix for experiment
25ac9705
Catfish-Man Remove arm64-specific code
931ae62e
Catfish-Man Adjust for 32 bit
8e9f5e02
Catfish-Man Stop doing size math, stop duplicating work in some cases, and delete…
f0cee253
Catfish-Man Adopt the new implementation in another place, add unsafe annotations…
4b9be8fe
Catfish-Man Actually detect non-ascii in the fallback path
f326f61c
Catfish-Man Remove pointless failed attempt at being clever
9263ce67
Catfish-Man Do it all by hand, since empirically it's a lot faster for runs of no…
31779570
Catfish-Man Merge branch 'main' into asciivec
9d6d2258
Catfish-Man Add a (slow) scalar fallback path, and add more unsafe annotations
9dc0c968
Catfish-Man Fix precondition
bb2437d8
Catfish-Man Merge origin/main into asciivec
b67b9925
Catfish-Man Speed up length calculation
0aa24817
Catfish-Man Refactor a bit
468fb52a
Catfish-Man Be less silly about calculating isASCII
755150d6
Catfish-Man Some fixes for invalid content, plus slightly reducing the bias towar…
338997a4
Catfish-Man Remove redundant checks
4ada2644
Catfish-Man unsafe annotations, fast paths, and removing a little dead code
0433c916
Catfish-Man Fix isASCII calculation
82973ed8
Catfish-Man Expand SIMD length coverage to all non-surrogates
199ce793
Catfish-Man Handle non-surrogates in transcoding too
3ce7eb6d
Catfish-Man Somehow this fix went missing??
7cbe56a1
Catfish-Man Revert "Handle non-surrogates in transcoding too"
c2b223ee
Catfish-Man Revert "Expand SIMD length coverage to all non-surrogates"
3f4326c4
Catfish-Man Catfish-Man assigned Catfish-Man Catfish-Man 42 days ago
Catfish-Man
Catfish-Man
Catfish-Man
Catfish-Man
Catfish-Man
Catfish-Man
Catfish-Man
Catfish-Man
Catfish-Man
Catfish-Man
Catfish-Man Merge remote-tracking branch 'origin/main' into asciivec
9c55321b
Catfish-Man Merge remote-tracking branch 'origin/main' into asciivec
1a43eaa5
Catfish-Man Fix a bug when surrogate pairs straddle SIMD block boundaries
01df4588
Catfish-Man tweak loop condition to avoid potential UB
43bb42fe
Catfish-Man Avoid falling into the scalar path unnecessarily when the buffer size…
f35094db
Catfish-Man Misc cleanup and safety against future changes
34752f7b
Catfish-Man Whoops forgot to add a file
38d8ff9c
Catfish-Man Reapply "Expand SIMD length coverage to all non-surrogates"
bf428143
Catfish-Man Reapply "Handle non-surrogates in transcoding too"
0b274711
Catfish-Man Try vectorizing non-ASCII BMP, this time with somewhat less bad codegen
164583e4
Catfish-Man Tweak loop to be more like the original
92c35567
Catfish-Man Use the update ascii check in the other function too
d2782a48
Catfish-Man Vectorize UTF8->UTF16 copying some too
2ed9783f
Catfish-Man Avoid shadowing a function name with a variable name
d3f47e34
Catfish-Man Avoid emitting symbols where we didn't before
0f002ed6
Catfish-Man Catfish-Man force pushed from 0ef3ee0e to 0f002ed6 13 days ago
Catfish-Man
Catfish-Man Typo fix
90ec8bd2
Catfish-Man Merge branch 'asciivec' into asciivec-3
57ac5b97
Catfish-Man
Catfish-Man Fix typo harder
1c3937fa
Catfish-Man Fix a subtle bug and add a test for it
03cf34d2
Catfish-Man Merge branch 'asciivec' into asciivec-3
548a2f3e
Catfish-Man

Login to write a write a comment.

Login via GitHub

Reviewers
No reviews
Assignees
Labels
Milestone