 
     len w+
 
-    bytes len 16 mod tail-slice*
-    dup length dup 4 mod - cut-slice [
-        4 <groups> [
-            le> prime3 w* w+ 17 bitroll-32 prime4 w*
-        ] each
-    ] [
-        [
-            prime5 w* w+ 11 bitroll-32 prime1 w*
-        ] each
-    ] bi*
+    len/16 len/4 bytes uint native-mapper
+    [ prime3 w* w+ 17 bitroll-32 prime4 w* ] each
+
+    bytes len/4 tail-slice
+    [ prime5 w* w+ 11 bitroll-32 prime1 w* ] each
 
     [ -15 shift ] [ bitxor ] bi prime2 w*
     [ -13 shift ] [ bitxor ] bi prime3 w*


C: <xxhash> xxhash

M:: xxhash checksum-bytes ( bytes checksum -- value )
    checksum seed>> :> seed
    bytes length :> len

    len 16 >= [


        seed
        seed prime1 w-

        0 len/16 bytes uint native-mapper

        4 <groups> [
            first4
