Fixing ill-formed UTF-16 strings with SIMD instructions
By: Robert Clausecker, Daniel Lemire
Potential Business Impact:
Fixes broken text faster for websites.
UTF-16 is a widely used Unicode encoding representing characters with one or two 16-bit code units. The format relies on surrogate pairs to encode characters beyond the Basic Multilingual Plane, requiring a high surrogate followed by a low surrogate. Ill-formed UTF-16 strings -- where surrogates are mismatched -- can arise from data corruption or improper encoding, posing security and reliability risks. Consequently, programming languages such as JavaScript include functions to fix ill-formed UTF-16 strings by replacing mismatched surrogates with the Unicode replacement character (U+FFFD). We propose using Single Instruction, Multiple Data (SIMD) instructions to handle multiple code units in parallel, enabling faster and more efficient execution. Our software is part of the Google JavaScript engine (V8) and thus part of several major Web browsers.
Similar Papers
Scanning HTML at Tens of Gigabytes per Second on ARM Processors
Data Structures and Algorithms
Makes web pages load much faster.
SimdBench: Benchmarking Large Language Models for SIMD-Intrinsic Code Generation
Software Engineering
Helps computers write faster code for complex tasks.
Retrofitting Control Flow Graphs in LLVM IR for Auto Vectorization
Programming Languages
Makes computer programs run much faster.