[Libre-soc-isa] [Bug 794] SVP64 REMAP for utf8
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Wed Mar 30 17:25:21 BST 2022
https://bugs.libre-soc.org/show_bug.cgi?id=794
--- Comment #9 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
still unintelligable at an algorithmic level due to this:
idx += SIMD_CHUNK_SIZE
no explanations at all:
let byte_1_low = prev1.and(SimdU8Value::splat(0x0F)).lookup_16(
CARRY | OVERLONG_3 | OVERLONG_2 | OVERLONG_4,
CARRY | OVERLONG_2,
and there's zero code comments.
the very attempt to include lookup tables and to perform SIMD-ification
is precisely what makes this code 100% hostile. no comments just buries
what is already dead another 6ft under :)
i have some ideas floating around but until appropriate *scalar* non-optimised
*simple* implementations are found i cannot nail those ideas down.
i expect finding such implementations to be just as hard as for DCT because
"why would you bother, like, y'know, that's so slow ya wasting time, man"
i need to understand the *principle* behind utf8, and when doing REMAP
it needs the *REMAP* system to perform the looping, not the "concept
called packed SIMD where you throw SIMD_CHUNK_SIZEs of data at a wall
and hope for the best".
anything that uses Packed SIMD catastrophically interferes with REMAP, and
with Data-Dependent FailFirst and Predicate-Result Modes.
just like how strncpy in RVV with fail-first LDST is only 13 assembler
instructions but when using Power ISA Packed SIMD it requires 240.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Libre-SOC-ISA
mailing list