mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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>
This commit is contained in:
parent
7b904c25a2
commit
a9093067ee
4 changed files with 393 additions and 0 deletions
72
src/cmd/asm/internal/asm/testdata/loong64enc1.s
vendored
72
src/cmd/asm/internal/asm/testdata/loong64enc1.s
vendored
|
|
@ -1075,6 +1075,78 @@ lable2:
|
||||||
XVMULWODVWUW X1, X2, X3 // 4304a374
|
XVMULWODVWUW X1, X2, X3 // 4304a374
|
||||||
XVMULWODQVUV X1, X2, X3 // 4384a374
|
XVMULWODQVUV X1, X2, X3 // 4384a374
|
||||||
|
|
||||||
|
// [X]VADDW{EV/OD}.{H.B/W.H/D.W/Q.D} instructions
|
||||||
|
VADDWEVHB V1, V2, V3 // 43041e70
|
||||||
|
VADDWEVWH V1, V2, V3 // 43841e70
|
||||||
|
VADDWEVVW V1, V2, V3 // 43041f70
|
||||||
|
VADDWEVQV V1, V2, V3 // 43841f70
|
||||||
|
VADDWODHB V1, V2, V3 // 43042270
|
||||||
|
VADDWODWH V1, V2, V3 // 43842270
|
||||||
|
VADDWODVW V1, V2, V3 // 43042370
|
||||||
|
VADDWODQV V1, V2, V3 // 43842370
|
||||||
|
XVADDWEVHB X1, X2, X3 // 43041e74
|
||||||
|
XVADDWEVWH X1, X2, X3 // 43841e74
|
||||||
|
XVADDWEVVW X1, X2, X3 // 43041f74
|
||||||
|
XVADDWEVQV X1, X2, X3 // 43841f74
|
||||||
|
XVADDWODHB X1, X2, X3 // 43042274
|
||||||
|
XVADDWODWH X1, X2, X3 // 43842274
|
||||||
|
XVADDWODVW X1, X2, X3 // 43042374
|
||||||
|
XVADDWODQV X1, X2, X3 // 43842374
|
||||||
|
|
||||||
|
// [X]VSUBW{EV/OD}.{H.B/W.H/D.W/Q.D} instructions
|
||||||
|
VSUBWEVHB V1, V2, V3 // 43042070
|
||||||
|
VSUBWEVWH V1, V2, V3 // 43842070
|
||||||
|
VSUBWEVVW V1, V2, V3 // 43042170
|
||||||
|
VSUBWEVQV V1, V2, V3 // 43842170
|
||||||
|
VSUBWODHB V1, V2, V3 // 43042470
|
||||||
|
VSUBWODWH V1, V2, V3 // 43842470
|
||||||
|
VSUBWODVW V1, V2, V3 // 43042570
|
||||||
|
VSUBWODQV V1, V2, V3 // 43842570
|
||||||
|
XVSUBWEVHB X1, X2, X3 // 43042074
|
||||||
|
XVSUBWEVWH X1, X2, X3 // 43842074
|
||||||
|
XVSUBWEVVW X1, X2, X3 // 43042174
|
||||||
|
XVSUBWEVQV X1, X2, X3 // 43842174
|
||||||
|
XVSUBWODHB X1, X2, X3 // 43042474
|
||||||
|
XVSUBWODWH X1, X2, X3 // 43842474
|
||||||
|
XVSUBWODVW X1, X2, X3 // 43042574
|
||||||
|
XVSUBWODQV X1, X2, X3 // 43842574
|
||||||
|
|
||||||
|
// [X]VADDW{EV/OD}.{H.B/W.H/D.W/Q.D}U instructions
|
||||||
|
VADDWEVHBU V1, V2, V3 // 43042e70
|
||||||
|
VADDWEVWHU V1, V2, V3 // 43042f70
|
||||||
|
VADDWEVVWU V1, V2, V3 // 43042f70
|
||||||
|
VADDWEVQVU V1, V2, V3 // 43842f70
|
||||||
|
VADDWODHBU V1, V2, V3 // 43043270
|
||||||
|
VADDWODWHU V1, V2, V3 // 43843270
|
||||||
|
VADDWODVWU V1, V2, V3 // 43043370
|
||||||
|
VADDWODQVU V1, V2, V3 // 43843370
|
||||||
|
XVADDWEVHBU X1, X2, X3 // 43042e74
|
||||||
|
XVADDWEVWHU X1, X2, X3 // 43842e74
|
||||||
|
XVADDWEVVWU X1, X2, X3 // 43042f74
|
||||||
|
XVADDWEVQVU X1, X2, X3 // 43842f74
|
||||||
|
XVADDWODHBU X1, X2, X3 // 43043274
|
||||||
|
XVADDWODWHU X1, X2, X3 // 43843274
|
||||||
|
XVADDWODVWU X1, X2, X3 // 43043374
|
||||||
|
XVADDWODQVU X1, X2, X3 // 43843374
|
||||||
|
|
||||||
|
// [X]VSUBW{EV/OD}.{H.B/W.H/D.W/Q.D}U instructions
|
||||||
|
VSUBWEVHBU V1, V2, V3 // 43043070
|
||||||
|
VSUBWEVWHU V1, V2, V3 // 43843070
|
||||||
|
VSUBWEVVWU V1, V2, V3 // 43043170
|
||||||
|
VSUBWEVQVU V1, V2, V3 // 43843170
|
||||||
|
VSUBWODHBU V1, V2, V3 // 43043470
|
||||||
|
VSUBWODWHU V1, V2, V3 // 43843470
|
||||||
|
VSUBWODVWU V1, V2, V3 // 43043570
|
||||||
|
VSUBWODQVU V1, V2, V3 // 43843570
|
||||||
|
XVSUBWEVHBU X1, X2, X3 // 43043074
|
||||||
|
XVSUBWEVWHU X1, X2, X3 // 43843074
|
||||||
|
XVSUBWEVVWU X1, X2, X3 // 43043174
|
||||||
|
XVSUBWEVQVU X1, X2, X3 // 43843174
|
||||||
|
XVSUBWODHBU X1, X2, X3 // 43043474
|
||||||
|
XVSUBWODWHU X1, X2, X3 // 43843474
|
||||||
|
XVSUBWODVWU X1, X2, X3 // 43043574
|
||||||
|
XVSUBWODQVU X1, X2, X3 // 43843574
|
||||||
|
|
||||||
// [X]VSHUF4I.{B/H/W/D} instructions
|
// [X]VSHUF4I.{B/H/W/D} instructions
|
||||||
VSHUF4IB $0, V2, V1 // 41009073
|
VSHUF4IB $0, V2, V1 // 41009073
|
||||||
VSHUF4IB $16, V2, V1 // 41409073
|
VSHUF4IB $16, V2, V1 // 41409073
|
||||||
|
|
|
||||||
|
|
@ -1159,6 +1159,71 @@ const (
|
||||||
AXVMULWODVWUW
|
AXVMULWODVWUW
|
||||||
AXVMULWODQVUV
|
AXVMULWODQVUV
|
||||||
|
|
||||||
|
AVADDWEVHB
|
||||||
|
AVADDWEVWH
|
||||||
|
AVADDWEVVW
|
||||||
|
AVADDWEVQV
|
||||||
|
AVSUBWEVHB
|
||||||
|
AVSUBWEVWH
|
||||||
|
AVSUBWEVVW
|
||||||
|
AVSUBWEVQV
|
||||||
|
AVADDWODHB
|
||||||
|
AVADDWODWH
|
||||||
|
AVADDWODVW
|
||||||
|
AVADDWODQV
|
||||||
|
AVSUBWODHB
|
||||||
|
AVSUBWODWH
|
||||||
|
AVSUBWODVW
|
||||||
|
AVSUBWODQV
|
||||||
|
AXVADDWEVHB
|
||||||
|
AXVADDWEVWH
|
||||||
|
AXVADDWEVVW
|
||||||
|
AXVADDWEVQV
|
||||||
|
AXVSUBWEVHB
|
||||||
|
AXVSUBWEVWH
|
||||||
|
AXVSUBWEVVW
|
||||||
|
AXVSUBWEVQV
|
||||||
|
AXVADDWODHB
|
||||||
|
AXVADDWODWH
|
||||||
|
AXVADDWODVW
|
||||||
|
AXVADDWODQV
|
||||||
|
AXVSUBWODHB
|
||||||
|
AXVSUBWODWH
|
||||||
|
AXVSUBWODVW
|
||||||
|
AXVSUBWODQV
|
||||||
|
AVADDWEVHBU
|
||||||
|
AVADDWEVWHU
|
||||||
|
AVADDWEVVWU
|
||||||
|
AVADDWEVQVU
|
||||||
|
AVSUBWEVHBU
|
||||||
|
AVSUBWEVWHU
|
||||||
|
AVSUBWEVVWU
|
||||||
|
AVSUBWEVQVU
|
||||||
|
AVADDWODHBU
|
||||||
|
AVADDWODWHU
|
||||||
|
AVADDWODVWU
|
||||||
|
AVADDWODQVU
|
||||||
|
AVSUBWODHBU
|
||||||
|
AVSUBWODWHU
|
||||||
|
AVSUBWODVWU
|
||||||
|
AVSUBWODQVU
|
||||||
|
AXVADDWEVHBU
|
||||||
|
AXVADDWEVWHU
|
||||||
|
AXVADDWEVVWU
|
||||||
|
AXVADDWEVQVU
|
||||||
|
AXVSUBWEVHBU
|
||||||
|
AXVSUBWEVWHU
|
||||||
|
AXVSUBWEVVWU
|
||||||
|
AXVSUBWEVQVU
|
||||||
|
AXVADDWODHBU
|
||||||
|
AXVADDWODWHU
|
||||||
|
AXVADDWODVWU
|
||||||
|
AXVADDWODQVU
|
||||||
|
AXVSUBWODHBU
|
||||||
|
AXVSUBWODWHU
|
||||||
|
AXVSUBWODVWU
|
||||||
|
AXVSUBWODQVU
|
||||||
|
|
||||||
AVSHUF4IB
|
AVSHUF4IB
|
||||||
AVSHUF4IH
|
AVSHUF4IH
|
||||||
AVSHUF4IW
|
AVSHUF4IW
|
||||||
|
|
|
||||||
|
|
@ -628,6 +628,70 @@ var Anames = []string{
|
||||||
"XVMULWODWHUH",
|
"XVMULWODWHUH",
|
||||||
"XVMULWODVWUW",
|
"XVMULWODVWUW",
|
||||||
"XVMULWODQVUV",
|
"XVMULWODQVUV",
|
||||||
|
"VADDWEVHB",
|
||||||
|
"VADDWEVWH",
|
||||||
|
"VADDWEVVW",
|
||||||
|
"VADDWEVQV",
|
||||||
|
"VSUBWEVHB",
|
||||||
|
"VSUBWEVWH",
|
||||||
|
"VSUBWEVVW",
|
||||||
|
"VSUBWEVQV",
|
||||||
|
"VADDWODHB",
|
||||||
|
"VADDWODWH",
|
||||||
|
"VADDWODVW",
|
||||||
|
"VADDWODQV",
|
||||||
|
"VSUBWODHB",
|
||||||
|
"VSUBWODWH",
|
||||||
|
"VSUBWODVW",
|
||||||
|
"VSUBWODQV",
|
||||||
|
"XVADDWEVHB",
|
||||||
|
"XVADDWEVWH",
|
||||||
|
"XVADDWEVVW",
|
||||||
|
"XVADDWEVQV",
|
||||||
|
"XVSUBWEVHB",
|
||||||
|
"XVSUBWEVWH",
|
||||||
|
"XVSUBWEVVW",
|
||||||
|
"XVSUBWEVQV",
|
||||||
|
"XVADDWODHB",
|
||||||
|
"XVADDWODWH",
|
||||||
|
"XVADDWODVW",
|
||||||
|
"XVADDWODQV",
|
||||||
|
"XVSUBWODHB",
|
||||||
|
"XVSUBWODWH",
|
||||||
|
"XVSUBWODVW",
|
||||||
|
"XVSUBWODQV",
|
||||||
|
"VADDWEVHBU",
|
||||||
|
"VADDWEVWHU",
|
||||||
|
"VADDWEVVWU",
|
||||||
|
"VADDWEVQVU",
|
||||||
|
"VSUBWEVHBU",
|
||||||
|
"VSUBWEVWHU",
|
||||||
|
"VSUBWEVVWU",
|
||||||
|
"VSUBWEVQVU",
|
||||||
|
"VADDWODHBU",
|
||||||
|
"VADDWODWHU",
|
||||||
|
"VADDWODVWU",
|
||||||
|
"VADDWODQVU",
|
||||||
|
"VSUBWODHBU",
|
||||||
|
"VSUBWODWHU",
|
||||||
|
"VSUBWODVWU",
|
||||||
|
"VSUBWODQVU",
|
||||||
|
"XVADDWEVHBU",
|
||||||
|
"XVADDWEVWHU",
|
||||||
|
"XVADDWEVVWU",
|
||||||
|
"XVADDWEVQVU",
|
||||||
|
"XVSUBWEVHBU",
|
||||||
|
"XVSUBWEVWHU",
|
||||||
|
"XVSUBWEVVWU",
|
||||||
|
"XVSUBWEVQVU",
|
||||||
|
"XVADDWODHBU",
|
||||||
|
"XVADDWODWHU",
|
||||||
|
"XVADDWODVWU",
|
||||||
|
"XVADDWODQVU",
|
||||||
|
"XVSUBWODHBU",
|
||||||
|
"XVSUBWODWHU",
|
||||||
|
"XVSUBWODVWU",
|
||||||
|
"XVSUBWODQVU",
|
||||||
"VSHUF4IB",
|
"VSHUF4IB",
|
||||||
"VSHUF4IH",
|
"VSHUF4IH",
|
||||||
"VSHUF4IW",
|
"VSHUF4IW",
|
||||||
|
|
|
||||||
|
|
@ -1791,6 +1791,38 @@ func buildop(ctxt *obj.Link) {
|
||||||
opset(AVSLTHU, r0)
|
opset(AVSLTHU, r0)
|
||||||
opset(AVSLTWU, r0)
|
opset(AVSLTWU, r0)
|
||||||
opset(AVSLTVU, r0)
|
opset(AVSLTVU, r0)
|
||||||
|
opset(AVADDWEVHB, r0)
|
||||||
|
opset(AVADDWEVWH, r0)
|
||||||
|
opset(AVADDWEVVW, r0)
|
||||||
|
opset(AVADDWEVQV, r0)
|
||||||
|
opset(AVSUBWEVHB, r0)
|
||||||
|
opset(AVSUBWEVWH, r0)
|
||||||
|
opset(AVSUBWEVVW, r0)
|
||||||
|
opset(AVSUBWEVQV, r0)
|
||||||
|
opset(AVADDWODHB, r0)
|
||||||
|
opset(AVADDWODWH, r0)
|
||||||
|
opset(AVADDWODVW, r0)
|
||||||
|
opset(AVADDWODQV, r0)
|
||||||
|
opset(AVSUBWODHB, r0)
|
||||||
|
opset(AVSUBWODWH, r0)
|
||||||
|
opset(AVSUBWODVW, r0)
|
||||||
|
opset(AVSUBWODQV, r0)
|
||||||
|
opset(AVADDWEVHBU, r0)
|
||||||
|
opset(AVADDWEVWHU, r0)
|
||||||
|
opset(AVADDWEVVWU, r0)
|
||||||
|
opset(AVADDWEVQVU, r0)
|
||||||
|
opset(AVSUBWEVHBU, r0)
|
||||||
|
opset(AVSUBWEVWHU, r0)
|
||||||
|
opset(AVSUBWEVVWU, r0)
|
||||||
|
opset(AVSUBWEVQVU, r0)
|
||||||
|
opset(AVADDWODHBU, r0)
|
||||||
|
opset(AVADDWODWHU, r0)
|
||||||
|
opset(AVADDWODVWU, r0)
|
||||||
|
opset(AVADDWODQVU, r0)
|
||||||
|
opset(AVSUBWODHBU, r0)
|
||||||
|
opset(AVSUBWODWHU, r0)
|
||||||
|
opset(AVSUBWODVWU, r0)
|
||||||
|
opset(AVSUBWODQVU, r0)
|
||||||
|
|
||||||
case AXVSLTB:
|
case AXVSLTB:
|
||||||
opset(AXVSLTH, r0)
|
opset(AXVSLTH, r0)
|
||||||
|
|
@ -1800,6 +1832,38 @@ func buildop(ctxt *obj.Link) {
|
||||||
opset(AXVSLTHU, r0)
|
opset(AXVSLTHU, r0)
|
||||||
opset(AXVSLTWU, r0)
|
opset(AXVSLTWU, r0)
|
||||||
opset(AXVSLTVU, r0)
|
opset(AXVSLTVU, r0)
|
||||||
|
opset(AXVADDWEVHB, r0)
|
||||||
|
opset(AXVADDWEVWH, r0)
|
||||||
|
opset(AXVADDWEVVW, r0)
|
||||||
|
opset(AXVADDWEVQV, r0)
|
||||||
|
opset(AXVSUBWEVHB, r0)
|
||||||
|
opset(AXVSUBWEVWH, r0)
|
||||||
|
opset(AXVSUBWEVVW, r0)
|
||||||
|
opset(AXVSUBWEVQV, r0)
|
||||||
|
opset(AXVADDWODHB, r0)
|
||||||
|
opset(AXVADDWODWH, r0)
|
||||||
|
opset(AXVADDWODVW, r0)
|
||||||
|
opset(AXVADDWODQV, r0)
|
||||||
|
opset(AXVSUBWODHB, r0)
|
||||||
|
opset(AXVSUBWODWH, r0)
|
||||||
|
opset(AXVSUBWODVW, r0)
|
||||||
|
opset(AXVSUBWODQV, r0)
|
||||||
|
opset(AXVADDWEVHBU, r0)
|
||||||
|
opset(AXVADDWEVWHU, r0)
|
||||||
|
opset(AXVADDWEVVWU, r0)
|
||||||
|
opset(AXVADDWEVQVU, r0)
|
||||||
|
opset(AXVSUBWEVHBU, r0)
|
||||||
|
opset(AXVSUBWEVWHU, r0)
|
||||||
|
opset(AXVSUBWEVVWU, r0)
|
||||||
|
opset(AXVSUBWEVQVU, r0)
|
||||||
|
opset(AXVADDWODHBU, r0)
|
||||||
|
opset(AXVADDWODWHU, r0)
|
||||||
|
opset(AXVADDWODVWU, r0)
|
||||||
|
opset(AXVADDWODQVU, r0)
|
||||||
|
opset(AXVSUBWODHBU, r0)
|
||||||
|
opset(AXVSUBWODWHU, r0)
|
||||||
|
opset(AXVSUBWODVWU, r0)
|
||||||
|
opset(AXVSUBWODQVU, r0)
|
||||||
|
|
||||||
case AVANDB:
|
case AVANDB:
|
||||||
opset(AVORB, r0)
|
opset(AVORB, r0)
|
||||||
|
|
@ -3612,6 +3676,134 @@ func (c *ctxt0) oprrr(a obj.As) uint32 {
|
||||||
return 0xe946 << 15 // xvmulwod.d.wu.w
|
return 0xe946 << 15 // xvmulwod.d.wu.w
|
||||||
case AXVMULWODQVUV:
|
case AXVMULWODQVUV:
|
||||||
return 0xe947 << 15 // xvmulwod.q.du.d
|
return 0xe947 << 15 // xvmulwod.q.du.d
|
||||||
|
case AVADDWEVHB:
|
||||||
|
return 0x0E03C << 15 // vaddwev.h.b
|
||||||
|
case AVADDWEVWH:
|
||||||
|
return 0x0E03D << 15 // vaddwev.w.h
|
||||||
|
case AVADDWEVVW:
|
||||||
|
return 0x0E03E << 15 // vaddwev.d.w
|
||||||
|
case AVADDWEVQV:
|
||||||
|
return 0x0E03F << 15 // vaddwev.q.d
|
||||||
|
case AVSUBWEVHB:
|
||||||
|
return 0x0E040 << 15 // vsubwev.h.b
|
||||||
|
case AVSUBWEVWH:
|
||||||
|
return 0x0E041 << 15 // vsubwev.w.h
|
||||||
|
case AVSUBWEVVW:
|
||||||
|
return 0x0E042 << 15 // vsubwev.d.w
|
||||||
|
case AVSUBWEVQV:
|
||||||
|
return 0x0E043 << 15 // vsubwev.q.d
|
||||||
|
case AVADDWODHB:
|
||||||
|
return 0x0E044 << 15 // vaddwod.h.b
|
||||||
|
case AVADDWODWH:
|
||||||
|
return 0x0E045 << 15 // vaddwod.w.h
|
||||||
|
case AVADDWODVW:
|
||||||
|
return 0x0E046 << 15 // vaddwod.d.w
|
||||||
|
case AVADDWODQV:
|
||||||
|
return 0x0E047 << 15 // vaddwod.q.d
|
||||||
|
case AVSUBWODHB:
|
||||||
|
return 0x0E048 << 15 // vsubwod.h.b
|
||||||
|
case AVSUBWODWH:
|
||||||
|
return 0x0E049 << 15 // vsubwod.w.h
|
||||||
|
case AVSUBWODVW:
|
||||||
|
return 0x0E04A << 15 // vsubwod.d.w
|
||||||
|
case AVSUBWODQV:
|
||||||
|
return 0x0E04B << 15 // vsubwod.q.d
|
||||||
|
case AXVADDWEVHB:
|
||||||
|
return 0x0E83C << 15 // xvaddwev.h.b
|
||||||
|
case AXVADDWEVWH:
|
||||||
|
return 0x0E83D << 15 // xvaddwev.w.h
|
||||||
|
case AXVADDWEVVW:
|
||||||
|
return 0x0E83E << 15 // xvaddwev.d.w
|
||||||
|
case AXVADDWEVQV:
|
||||||
|
return 0x0E83F << 15 // xvaddwev.q.d
|
||||||
|
case AXVSUBWEVHB:
|
||||||
|
return 0x0E840 << 15 // xvsubwev.h.b
|
||||||
|
case AXVSUBWEVWH:
|
||||||
|
return 0x0E841 << 15 // xvsubwev.w.h
|
||||||
|
case AXVSUBWEVVW:
|
||||||
|
return 0x0E842 << 15 // xvsubwev.d.w
|
||||||
|
case AXVSUBWEVQV:
|
||||||
|
return 0x0E843 << 15 // xvsubwev.q.d
|
||||||
|
case AXVADDWODHB:
|
||||||
|
return 0x0E844 << 15 // xvaddwod.h.b
|
||||||
|
case AXVADDWODWH:
|
||||||
|
return 0x0E845 << 15 // xvaddwod.w.h
|
||||||
|
case AXVADDWODVW:
|
||||||
|
return 0x0E846 << 15 // xvaddwod.d.w
|
||||||
|
case AXVADDWODQV:
|
||||||
|
return 0x0E847 << 15 // xvaddwod.q.d
|
||||||
|
case AXVSUBWODHB:
|
||||||
|
return 0x0E848 << 15 // xvsubwod.h.b
|
||||||
|
case AXVSUBWODWH:
|
||||||
|
return 0x0E849 << 15 // xvsubwod.w.h
|
||||||
|
case AXVSUBWODVW:
|
||||||
|
return 0x0E84A << 15 // xvsubwod.d.w
|
||||||
|
case AXVSUBWODQV:
|
||||||
|
return 0x0E84B << 15 // xvsubwod.q.d
|
||||||
|
case AVADDWEVHBU:
|
||||||
|
return 0x0E05C << 15 // vaddwev.h.bu
|
||||||
|
case AVADDWEVWHU:
|
||||||
|
return 0x0E05E << 15 // vaddwev.w.hu
|
||||||
|
case AVADDWEVVWU:
|
||||||
|
return 0x0E05E << 15 // vaddwev.d.wu
|
||||||
|
case AVADDWEVQVU:
|
||||||
|
return 0x0E05F << 15 // vaddwev.q.du
|
||||||
|
case AVSUBWEVHBU:
|
||||||
|
return 0x0E060 << 15 // vsubwev.h.bu
|
||||||
|
case AVSUBWEVWHU:
|
||||||
|
return 0x0E061 << 15 // vsubwev.w.hu
|
||||||
|
case AVSUBWEVVWU:
|
||||||
|
return 0x0E062 << 15 // vsubwev.d.wu
|
||||||
|
case AVSUBWEVQVU:
|
||||||
|
return 0x0E063 << 15 // vsubwev.q.du
|
||||||
|
case AVADDWODHBU:
|
||||||
|
return 0x0E064 << 15 // vaddwod.h.bu
|
||||||
|
case AVADDWODWHU:
|
||||||
|
return 0x0E065 << 15 // vaddwod.w.hu
|
||||||
|
case AVADDWODVWU:
|
||||||
|
return 0x0E066 << 15 // vaddwod.d.wu
|
||||||
|
case AVADDWODQVU:
|
||||||
|
return 0x0E067 << 15 // vaddwod.q.du
|
||||||
|
case AVSUBWODHBU:
|
||||||
|
return 0x0E068 << 15 // vsubwod.h.bu
|
||||||
|
case AVSUBWODWHU:
|
||||||
|
return 0x0E069 << 15 // vsubwod.w.hu
|
||||||
|
case AVSUBWODVWU:
|
||||||
|
return 0x0E06A << 15 // vsubwod.d.wu
|
||||||
|
case AVSUBWODQVU:
|
||||||
|
return 0x0E06B << 15 // vsubwod.q.du
|
||||||
|
case AXVADDWEVHBU:
|
||||||
|
return 0x0E85C << 15 // xvaddwev.h.bu
|
||||||
|
case AXVADDWEVWHU:
|
||||||
|
return 0x0E85D << 15 // xvaddwev.w.hu
|
||||||
|
case AXVADDWEVVWU:
|
||||||
|
return 0x0E85E << 15 // xvaddwev.d.wu
|
||||||
|
case AXVADDWEVQVU:
|
||||||
|
return 0x0E85F << 15 // xvaddwev.q.du
|
||||||
|
case AXVSUBWEVHBU:
|
||||||
|
return 0x0E860 << 15 // xvsubwev.h.bu
|
||||||
|
case AXVSUBWEVWHU:
|
||||||
|
return 0x0E861 << 15 // xvsubwev.w.hu
|
||||||
|
case AXVSUBWEVVWU:
|
||||||
|
return 0x0E862 << 15 // xvsubwev.d.wu
|
||||||
|
case AXVSUBWEVQVU:
|
||||||
|
return 0x0E863 << 15 // xvsubwev.q.du
|
||||||
|
case AXVADDWODHBU:
|
||||||
|
return 0x0E864 << 15 // xvaddwod.h.bu
|
||||||
|
case AXVADDWODWHU:
|
||||||
|
return 0x0E865 << 15 // xvaddwod.w.hu
|
||||||
|
case AXVADDWODVWU:
|
||||||
|
return 0x0E866 << 15 // xvaddwod.d.wu
|
||||||
|
case AXVADDWODQVU:
|
||||||
|
return 0x0E867 << 15 // xvaddwod.q.du
|
||||||
|
case AXVSUBWODHBU:
|
||||||
|
return 0x0E868 << 15 // xvsubwod.h.bu
|
||||||
|
case AXVSUBWODWHU:
|
||||||
|
return 0x0E869 << 15 // xvsubwod.w.hu
|
||||||
|
case AXVSUBWODVWU:
|
||||||
|
return 0x0E86A << 15 // xvsubwod.d.wu
|
||||||
|
case AXVSUBWODQVU:
|
||||||
|
return 0x0E86B << 15 // xvsubwod.q.du
|
||||||
case AVSLLB:
|
case AVSLLB:
|
||||||
return 0xe1d0 << 15 // vsll.b
|
return 0xe1d0 << 15 // vsll.b
|
||||||
case AVSLLH:
|
case AVSLLH:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue