diff options
| author | Xiaolin Zhao <zhaoxiaolin@loongson.cn> | 2024-12-16 09:51:29 +0800 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2025-03-11 14:25:30 -0700 |
| commit | b0e2f185c574ebd2ee9e0193e6cb37ab1525786a (patch) | |
| tree | 77f8f6d467a48998f234eb8154afc2951bdd9de7 /src/cmd/asm | |
| parent | 6c70f2b960b39e37a6534948d32c02735afcd774 (diff) | |
| download | go-b0e2f185c574ebd2ee9e0193e6cb37ab1525786a.tar.xz | |
cmd/internal/obj/loong64: add {V,XV}MUL{B/H/W/V} and {V,XV}MUH{B/H/W/V}[U] instructions support
Go asm syntax:
VMUL{B/H/W/V} VK, VJ, VD
VMUH{B/H/W/V}[U] VK, VJ, VD
XVMUL{B/H/W/V} XK, XJ, XD
XVMUH{B/H/W/V}[U] XK, XJ, XD
Equivalent platform assembler syntax:
vmul.{b/h/w/d} vd, vj, vk
vmuh.{b/h/w/d}[u] vd, vj, vk
xvmul.{b/h/w/d} xd, xj, xk
xvmuh.{b/h/w/d}[u] xd, xj, xk
Change-Id: I2f15a5b4b6303a0f82cb85114477f58e1b5fd950
Reviewed-on: https://go-review.googlesource.com/c/go/+/636375
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: abner chenc <chenguoqi@loongson.cn>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: abner chenc <chenguoqi@loongson.cn>
Diffstat (limited to 'src/cmd/asm')
| -rw-r--r-- | src/cmd/asm/internal/asm/testdata/loong64enc1.s | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/cmd/asm/internal/asm/testdata/loong64enc1.s b/src/cmd/asm/internal/asm/testdata/loong64enc1.s index 10f295d61c..1369266473 100644 --- a/src/cmd/asm/internal/asm/testdata/loong64enc1.s +++ b/src/cmd/asm/internal/asm/testdata/loong64enc1.s @@ -775,3 +775,29 @@ lable2: XVILVHH X3, X2, X1 // 418c1c75 XVILVHW X3, X2, X1 // 410c1d75 XVILVHV X3, X2, X1 // 418c1d75 + + // [X]VMUL{B/H/W/V} and [X]VMUH{B/H/W/V}[U] instructions + VMULB V1, V2, V3 // 43048470 + VMULH V1, V2, V3 // 43848470 + VMULW V1, V2, V3 // 43048570 + VMULV V1, V2, V3 // 43848570 + VMUHB V1, V2, V3 // 43048670 + VMUHH V1, V2, V3 // 43848670 + VMUHW V1, V2, V3 // 43048770 + VMUHV V1, V2, V3 // 43848770 + VMUHBU V1, V2, V3 // 43048870 + VMUHHU V1, V2, V3 // 43848870 + VMUHWU V1, V2, V3 // 43048970 + VMUHVU V1, V2, V3 // 43848970 + XVMULB X3, X2, X1 // 410c8474 + XVMULH X3, X2, X1 // 418c8474 + XVMULW X3, X2, X1 // 410c8574 + XVMULV X3, X2, X1 // 418c8574 + XVMUHB X3, X2, X1 // 410c8674 + XVMUHH X3, X2, X1 // 418c8674 + XVMUHW X3, X2, X1 // 410c8774 + XVMUHV X3, X2, X1 // 418c8774 + XVMUHBU X3, X2, X1 // 410c8874 + XVMUHHU X3, X2, X1 // 418c8874 + XVMUHWU X3, X2, X1 // 410c8974 + XVMUHVU X3, X2, X1 // 418c8974 |
