133 lines
2.2 KiB
ArmAsm
133 lines
2.2 KiB
ArmAsm
// Differential kernel: the shuffle vector slice against the Go
|
|
// toolchain's loong64enc1.s rows (gasm v. go tool asm, byte for byte).
|
|
|
|
#include "textflag.h"
|
|
|
|
TEXT ·VSHUF4IB(SB), NOSPLIT, $0
|
|
VSHUF4IB $0, V2, V1
|
|
VSHUF4IB $16, V2, V1
|
|
VSHUF4IB $255, V2, V1
|
|
RET
|
|
|
|
TEXT ·VSHUF4IH(SB), NOSPLIT, $0
|
|
VSHUF4IH $0, V2, V1
|
|
VSHUF4IH $128, V2, V1
|
|
VSHUF4IH $255, V2, V1
|
|
RET
|
|
|
|
TEXT ·VSHUF4IW(SB), NOSPLIT, $0
|
|
VSHUF4IW $0, V2, V1
|
|
VSHUF4IW $96, V2, V1
|
|
VSHUF4IW $255, V2, V1
|
|
RET
|
|
|
|
TEXT ·VSHUF4IV(SB), NOSPLIT, $0
|
|
VSHUF4IV $0, V2, V1
|
|
VSHUF4IV $8, V2, V1
|
|
VSHUF4IV $15, V2, V1
|
|
RET
|
|
|
|
TEXT ·XVSHUF4IB(SB), NOSPLIT, $0
|
|
XVSHUF4IB $0, X1, X2
|
|
XVSHUF4IB $16, X1, X2
|
|
XVSHUF4IB $255, X1, X2
|
|
RET
|
|
|
|
TEXT ·XVSHUF4IH(SB), NOSPLIT, $0
|
|
XVSHUF4IH $0, X1, X2
|
|
XVSHUF4IH $128, X1, X2
|
|
XVSHUF4IH $255, X1, X2
|
|
RET
|
|
|
|
TEXT ·XVSHUF4IW(SB), NOSPLIT, $0
|
|
XVSHUF4IW $0, X1, X2
|
|
XVSHUF4IW $96, X1, X2
|
|
XVSHUF4IW $255, X1, X2
|
|
RET
|
|
|
|
TEXT ·XVSHUF4IV(SB), NOSPLIT, $0
|
|
XVSHUF4IV $0, X1, X2
|
|
XVSHUF4IV $8, X1, X2
|
|
XVSHUF4IV $15, X1, X2
|
|
RET
|
|
|
|
TEXT ·VSHUFH(SB), NOSPLIT, $0
|
|
VSHUFH V1, V2, V3
|
|
RET
|
|
|
|
TEXT ·VSHUFW(SB), NOSPLIT, $0
|
|
VSHUFW V1, V2, V3
|
|
RET
|
|
|
|
TEXT ·VSHUFV(SB), NOSPLIT, $0
|
|
VSHUFV V1, V2, V3
|
|
RET
|
|
|
|
TEXT ·XVSHUFH(SB), NOSPLIT, $0
|
|
XVSHUFH X1, X2, X3
|
|
RET
|
|
|
|
TEXT ·XVSHUFW(SB), NOSPLIT, $0
|
|
XVSHUFW X1, X2, X3
|
|
RET
|
|
|
|
TEXT ·XVSHUFV(SB), NOSPLIT, $0
|
|
XVSHUFV X1, X2, X3
|
|
RET
|
|
|
|
TEXT ·VSHUFB(SB), NOSPLIT, $0
|
|
VSHUFB V1, V2, V3, V4
|
|
RET
|
|
|
|
TEXT ·XVSHUFB(SB), NOSPLIT, $0
|
|
XVSHUFB X1, X2, X3, X4
|
|
RET
|
|
|
|
TEXT ·VPERMIW(SB), NOSPLIT, $0
|
|
VPERMIW $0x1B, V1, V2
|
|
RET
|
|
|
|
TEXT ·XVPERMIW(SB), NOSPLIT, $0
|
|
XVPERMIW $0x2B, X1, X2
|
|
RET
|
|
|
|
TEXT ·XVPERMIV(SB), NOSPLIT, $0
|
|
XVPERMIV $0x3B, X1, X2
|
|
RET
|
|
|
|
TEXT ·XVPERMIQ(SB), NOSPLIT, $0
|
|
XVPERMIQ $0x4B, X1, X2
|
|
RET
|
|
|
|
TEXT ·VEXTRINSB(SB), NOSPLIT, $0
|
|
VEXTRINSB $0x18, V1, V2
|
|
RET
|
|
|
|
TEXT ·VEXTRINSH(SB), NOSPLIT, $0
|
|
VEXTRINSH $0x27, V1, V2
|
|
RET
|
|
|
|
TEXT ·VEXTRINSW(SB), NOSPLIT, $0
|
|
VEXTRINSW $0x36, V1, V2
|
|
RET
|
|
|
|
TEXT ·VEXTRINSV(SB), NOSPLIT, $0
|
|
VEXTRINSV $0x45, V1, V2
|
|
RET
|
|
|
|
TEXT ·XVEXTRINSB(SB), NOSPLIT, $0
|
|
XVEXTRINSB $0x54, X1, X2
|
|
RET
|
|
|
|
TEXT ·XVEXTRINSH(SB), NOSPLIT, $0
|
|
XVEXTRINSH $0x63, X1, X2
|
|
RET
|
|
|
|
TEXT ·XVEXTRINSW(SB), NOSPLIT, $0
|
|
XVEXTRINSW $0x72, X1, X2
|
|
RET
|
|
|
|
TEXT ·XVEXTRINSV(SB), NOSPLIT, $0
|
|
XVEXTRINSV $0x81, X1, X2
|
|
RET
|