]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/loong64: add {,x}vmadd series instructions support
authorGuoqi Chen <chenguoqi@loongson.cn>
Mon, 24 Nov 2025 12:19:06 +0000 (20:19 +0800)
committerGopher Robot <gobot@golang.org>
Wed, 26 Nov 2025 18:40:28 +0000 (10:40 -0800)
commite0a4dffb0c0eff51bb5b170d4ae0492a43de153d
tree9dc48ba49d4800eeeee72831b4018fa563eb2384
parentc0f02c11fff439cf3a99dfca34698b583bb3ce48
cmd/internal/obj/loong64: add {,x}vmadd series instructions support

Go asm syntax:
  VMADD{B, H, W, V}                         V1, V2, V3
  VMSUB{B, H, W, V}                         V1, V2, V3
 XVMADD{B, H, W, V}                         X1, X2, X3
 XVMSUB{B, H, W, V}                         X1, X2, X3
 VMADDWEV{HB, WH, VW,QV}{,U}                V1, V2, V3
 VMADDWOD{HB, WH, VW,QV}{,U}                V1, V2, V3
XVMADDWEV{HB, WH, VW,QV}{,U}                X1, X2, X3
XVMADDWOD{HB, WH, VW,QV}{,U}                X1, X2, X3
 VMADDWEV{HBUB, WHUH, VWUW, QVUV}           V1, V2, V3
 VMADDWOD{HBUB, WHUH, VWUW, QVUV}           V1, V2, V3
XVMADDWEV{HBUB, WHUH, VWUW, QVUV}           X1, X2, X3
XVMADDWOD{HBUB, WHUH, VWUW, QVUV}           X1, X2, X3

Equivalent platform assembler syntax:
 vmadd.{b,h,w,d}                            v3, v2, v1
 vmsub.{b,h,w,d}                            v3, v2, v1
xvmadd.{b,h,w,d}                            x3, x2, x1
xvmsub.{b,h,w,d}                            x3, x2, x1
 vmaddwev.{h.b, w.h, d.w, q.d}{,u}          v3, v2, v1
 vmaddwod.{h.b, w.h, d.w, q.d}{,u}          v3, v2, v1
xvmaddwev.{h.b, w.h, d.w, q.d}{,u}          x3, x2, x1
xvmaddwod.{h.b, w.h, d.w, q.d}{,u}          x3, x2, x1
 vmaddwev.{h.bu.b, d.wu.w, d.wu.w, q.du.d}  v3, v2, v1
 vmaddwod.{h.bu.b, d.wu.w, d.wu.w, q.du.d}  v3, v2, v1
xvmaddwev.{h.bu.b, d.wu.w, d.wu.w, q.du.d}  x3, x2, x1
xvmaddwod.{h.bu.b, d.wu.w, d.wu.w, q.du.d}  x3, x2, x1

Change-Id: I2f4aae51045e1596d4744e525a1589586065cf8e
Reviewed-on: https://go-review.googlesource.com/c/go/+/724200
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Meidan Li <limeidan@loongson.cn>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: abner chenc <chenguoqi@loongson.cn>
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