]> git.feebdaed.xyz Git - 0xmirror/go.git/commit
cmd/internal/obj/loong64: add {,X}V{ADD,SUB}W{EV,OD}.{H.B,W.H,D.W,Q.D}{,U} instructio...
authorGuoqi Chen <chenguoqi@loongson.cn>
Mon, 24 Nov 2025 04:56:15 +0000 (12:56 +0800)
committerabner chenc <chenguoqi@loongson.cn>
Wed, 26 Nov 2025 00:50:48 +0000 (16:50 -0800)
commita9093067ee0fda40421bd1d4fad893dfa6c99fd5
tree0deff53449c0b39c7714bfb5c90d940d4c3a6d85
parent7b904c25a27a1a2d33436826790459bc6dbbdb4a
cmd/internal/obj/loong64: add {,X}V{ADD,SUB}W{EV,OD}.{H.B,W.H,D.W,Q.D}{,U} instructions support

Go asm syntax:
 VADDWEV{HB, WH, VW, QV}{,U}        V1, V2, V3
 VSUBWEV{HB, WH, VW, QV}{,U}        V1, V2, V3
 VADDWOD{HB, WH, VW, QV}{,U}        V1, V2, V3
 VSUBWOD{HB, WH, VW, QV}{,U}        V1, V2, V3
XVADDWEV{HB, WH, VW, QV}{,U}        X1, X2, X3
XVSUBWEV{HB, WH, VW, QV}{,U}        X1, X2, X3
XVADDWOD{HB, WH, VW, QV}{,U}        X1, X2, X3
XVSUBWOD{HB, WH, VW, QV}{,U}        X1, X2, X3

Equivalent platform assembler syntax:
 vaddwev.{h.b, w.h, d.w, q.d}{,u}   V3, V2, V1
 vsubwev.{h.b, w.h, d.w, q.d}{,u}   V3, V2, V1
 vaddwod.{h.b, w.h, d.w, q.d}{,u}   V3, V2, V1
 vsubwod.{h.b, w.h, d.w, q.d}{,u}   V3, V2, V1
xvaddwev.{h.b, w.h, d.w, q.d}{,u}   X3, X2, X1
xvsubwev.{h.b, w.h, d.w, q.d}{,u}   X3, X2, X1
xvaddwod.{h.b, w.h, d.w, q.d}{,u}   X3, X2, X1
xvsubwod.{h.b, w.h, d.w, q.d}{,u}   X3, X2, X1

Change-Id: I407dc65b32b89844fd303e265a99d8aafdf922ec
Reviewed-on: https://go-review.googlesource.com/c/go/+/723620
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Meidan Li <limeidan@loongson.cn>
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Mark Freeman <markfreeman@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