[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


--- 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