]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/loong64: add {,X}VS{ADD,SUB}.{B/H/W/V}{,U} instructions support
authorGuoqi Chen <chenguoqi@loongson.cn>
Mon, 10 Nov 2025 07:57:14 +0000 (15:57 +0800)
committerabner chenc <chenguoqi@loongson.cn>
Thu, 13 Nov 2025 06:16:07 +0000 (22:16 -0800)
commitabb241a789de9dd6a46ef8bb1f9c741623a4a452
tree47ed5771ad4926c95c0e45c3177add14e0963a71
parent0929d2197807c7b70ff0b1a17982259879e9c064
cmd/internal/obj/loong64: add {,X}VS{ADD,SUB}.{B/H/W/V}{,U} instructions support

Go asm syntax:
 VSADD{B,H,W,V}     V1, V2, V3
 VSADD{B,H,W,V}U    V1, V2, V3
 VSSUB{B,H,W,V}     V1, V2, V3
 VSSUB{B,H,W,V}U    V1, V2, V3
XVSADD{B,H,W,V}     X1, X2, X3
XVSADD{B,H,W,V}U    X1, X2, X3
XVSSUB{B,H,W,V}     X1, X2, X3
XVSSUB{B,H,W,V}U    X1, X2, X3

Equivalent platform assembler syntax:
 vsadd.{b,h,w,d}    v3, v2, v1
 vsadd.{b,h,w,d}u   v3, v2, v1
 vssub.{b,h,w,d}    v3, v2, v1
 vssub.{b,h,w,d}u   v3, v2, v1
xvsadd.{b,h,w,d}    x3, x2, x1
xvsadd.{b,h,w,d}u   x3, x2, x1
xvssub.{b,h,w,d}    x3, x2, x1
xvssub.{b,h,w,d}u   x3, x2, x1

Change-Id: Iab8c1a9bdc4940598936f3beac846466e913ffa2
Reviewed-on: https://go-review.googlesource.com/c/go/+/719200
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Meidan Li <limeidan@loongson.cn>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
Reviewed-by: Michael Pratt <mpratt@google.com>
src/cmd/asm/internal/asm/testdata/loong64enc1.s
src/cmd/internal/obj/loong64/a.out.go
src/cmd/internal/obj/loong64/anames.go
src/cmd/internal/obj/loong64/asm.go