Loading argument twice off the stack?
fwessels opened this issue · comments
Frank Wessels commented
The avo generated code seems to be loading one argument twice:
// func mulAvxTwo_1x1_64(matrix []byte, in [][]byte, out [][]byte, start int, n int)
// Requires: AVX, AVX2, SSE2
TEXT ·mulAvxTwo_1x1_64(SB), $0-88
// Loading all tables to registers
// Destination kept in GP registers
// Full registers estimated 10 YMM used
MOVQ n+80(FP), AX
MOVQ matrix_base+0(FP), CX
SHRQ $0x06, AX
TESTQ AX, AX
JZ mulAvxTwo_1x1_64_end
VMOVDQU (CX), Y0
VMOVDQU 32(CX), Y1
MOVQ in_base+24(FP), CX
MOVQ (CX), CX
MOVQ out_base+48(FP), DX
MOVQ out_base+48(FP), DX // <-----
MOVQ (DX), DX
MOVQ start+72(FP), BX