feat(loong64): encode the full LSX and LASX table
Assisted-by: GLM 5.3 Flash
This commit is contained in:
+132
@@ -0,0 +1,132 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user