Open
Description
I am trying to implement https://github.com/lemire/streamvbyte/blob/master/src/streamvbyte_x64_decode.c#L2.
However, Using Store(xmm, ReturnIndex(0))
resulted an error in go generate asm.go:85: component is not primitive exit status 1
. Instead I changed to Store(xmm, ReturnIndex(0).Index(0))
to work around it.
I also manually changed to use AVX512, VMOVDQU8. The following is Go assembler code.
// func Shuffle(mask []byte, data []byte) [4]uint32
// Requires: AVX, SSE2, SSSE3
TEXT ·Shuffle(SB), NOSPLIT, $0-64
MOVQ data_base+24(FP), AX
VMOVDQU8 (AX), X0
MOVQ mask_base+0(FP), AX
PSHUFB (AX), X0
VMOVDQU8 X0, ret_0+48(FP)
RET
Metadata
Metadata
Assignees
Labels
No labels