]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.simd] cmd/compile: add fp3fp1 regsiter shape
authorJunyang Shao <shaojunyang@google.com>
Mon, 9 Jun 2025 16:57:38 +0000 (16:57 +0000)
committerGopher Robot <gobot@golang.org>
Mon, 9 Jun 2025 18:27:09 +0000 (11:27 -0700)
This is to accomodate dot product instructions.

Change-Id: I88b21f848d7a51ad036bb3555c30f12b72571b2b
Reviewed-on: https://go-review.googlesource.com/c/go/+/680235
Reviewed-by: David Chase <drchase@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Junyang Shao <shaojunyang@google.com>

src/cmd/compile/internal/ssa/_gen/AMD64Ops.go
src/cmd/compile/internal/ssa/_gen/simdAMD64ops.go

index 2b610674844725b07d5714b6cc8756a0aa3c1c23..e5cc261bcf625d999ff2de9099d41bccdaf88d2a 100644 (file)
@@ -188,6 +188,7 @@ func init() {
                fp1m1fp1 = regInfo{inputs: []regMask{fp, mask}, outputs: fponly}
                fp2m1fp1 = regInfo{inputs: []regMask{fp, fp, mask}, outputs: fponly}
                fp2m1m1  = regInfo{inputs: []regMask{fp, fp, mask}, outputs: maskonly}
+               fp3fp1   = regInfo{inputs: []regMask{fp, fp, fp}, outputs: fponly}
 
                prefreg = regInfo{inputs: []regMask{gpspsbg}}
        )
@@ -1298,7 +1299,7 @@ func init() {
                pkg:                "cmd/internal/obj/x86",
                genfile:            "../../amd64/ssa.go",
                genSIMDfile:        "../../amd64/simdssa.go",
-               ops:                append(AMD64ops, simdAMD64Ops(fp11, fp21, fp2m1, fp1m1fp1, fp2m1fp1, fp2m1m1)...), // AMD64ops,
+               ops:                append(AMD64ops, simdAMD64Ops(fp11, fp21, fp2m1, fp1m1fp1, fp2m1fp1, fp2m1m1, fp3fp1)...), // AMD64ops,
                blocks:             AMD64blocks,
                regnames:           regNamesAMD64,
                ParamIntRegNames:   "AX BX CX DI SI R8 R9 R10 R11",
index b08c5f230ffa44b9ef3c5b1b8280b330f720eaaa..c7ab52399299f953ffc8a3f822927e865536919c 100644 (file)
@@ -1,7 +1,7 @@
 // Code generated by x/arch/internal/simdgen using 'go run . -xedPath $XED_PATH -o godefs -goroot $GOROOT go.yaml types.yaml categories.yaml'; DO NOT EDIT.
 package main
 
-func simdAMD64Ops(fp1fp1, fp2fp1, fp2m1, fp1m1fp1, fp2m1fp1, fp2m1m1 regInfo) []opData {
+func simdAMD64Ops(fp1fp1, fp2fp1, fp2m1, fp1m1fp1, fp2m1fp1, fp2m1m1, fp3fp1 regInfo) []opData {
        return []opData{
                {name: "VADDPS512", argLength: 2, reg: fp2fp1, asm: "VADDPS", commutative: true, typ: "Vec512"},
                {name: "VANDPS512", argLength: 2, reg: fp2fp1, asm: "VANDPS", commutative: true, typ: "Vec512"},