diff options
| author | Neal Patel <nealpatel@google.com> | 2025-11-20 22:28:41 +0000 |
|---|---|---|
| committer | David Chase <drchase@google.com> | 2025-11-21 11:07:17 -0800 |
| commit | d3a0321dbad4c2f60bede3bd033b26a5a4839c53 (patch) | |
| tree | 68e34d8e78d2fb2e6a1427f298905c7e5101825a /src/cmd/compile | |
| parent | 74ebdd28d10f93fbcb58708c76b5805bc6c114a3 (diff) | |
| download | go-d3a0321dbad4c2f60bede3bd033b26a5a4839c53.tar.xz | |
[dev.simd] cmd/compile: fix incorrect mapping of SHA256MSG2128
Change-Id: Iff00fdb5cfc83c546ad564fa7618ec34d0352fdc
Reviewed-on: https://go-review.googlesource.com/c/go/+/722640
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/compile')
| -rw-r--r-- | src/cmd/compile/internal/amd64/simdssa.go | 3 | ||||
| -rw-r--r-- | src/cmd/compile/internal/ssa/_gen/simdAMD64.rules | 2 | ||||
| -rw-r--r-- | src/cmd/compile/internal/ssa/_gen/simdAMD64ops.go | 1 | ||||
| -rw-r--r-- | src/cmd/compile/internal/ssa/opGen.go | 16 | ||||
| -rw-r--r-- | src/cmd/compile/internal/ssa/rewriteAMD64.go | 2 |
5 files changed, 21 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/amd64/simdssa.go b/src/cmd/compile/internal/amd64/simdssa.go index b70a72b2f8..841f57581f 100644 --- a/src/cmd/compile/internal/amd64/simdssa.go +++ b/src/cmd/compile/internal/amd64/simdssa.go @@ -2291,7 +2291,8 @@ func ssaGenSIMDValue(s *ssagen.State, v *ssa.Value) bool { case ssa.OpAMD64SHA1MSG1128, ssa.OpAMD64SHA1MSG2128, ssa.OpAMD64SHA1NEXTE128, - ssa.OpAMD64SHA256MSG1128: + ssa.OpAMD64SHA256MSG1128, + ssa.OpAMD64SHA256MSG2128: p = simdV21ResultInArg0(s, v) case ssa.OpAMD64SHA1RNDS4128: diff --git a/src/cmd/compile/internal/ssa/_gen/simdAMD64.rules b/src/cmd/compile/internal/ssa/_gen/simdAMD64.rules index db426f6615..24d9f1a3d3 100644 --- a/src/cmd/compile/internal/ssa/_gen/simdAMD64.rules +++ b/src/cmd/compile/internal/ssa/_gen/simdAMD64.rules @@ -931,7 +931,7 @@ (SHA1Message2Uint32x4 ...) => (SHA1MSG2128 ...) (SHA1NextEUint32x4 ...) => (SHA1NEXTE128 ...) (SHA256Message1Uint32x4 ...) => (SHA256MSG1128 ...) -(SHA256Message2Uint32x4 ...) => (SHA256MSG1128 ...) +(SHA256Message2Uint32x4 ...) => (SHA256MSG2128 ...) (SHA256TwoRoundsUint32x4 ...) => (SHA256RNDS2128 ...) (ScaleFloat32x4 ...) => (VSCALEFPS128 ...) (ScaleFloat32x8 ...) => (VSCALEFPS256 ...) diff --git a/src/cmd/compile/internal/ssa/_gen/simdAMD64ops.go b/src/cmd/compile/internal/ssa/_gen/simdAMD64ops.go index 404354d387..cf8351beb0 100644 --- a/src/cmd/compile/internal/ssa/_gen/simdAMD64ops.go +++ b/src/cmd/compile/internal/ssa/_gen/simdAMD64ops.go @@ -9,6 +9,7 @@ func simdAMD64Ops(v11, v21, v2k, vkv, v2kv, v2kk, v31, v3kv, vgpv, vgp, vfpv, vf {name: "SHA1MSG2128", argLength: 2, reg: v21, asm: "SHA1MSG2", commutative: false, typ: "Vec128", resultInArg0: true}, {name: "SHA1NEXTE128", argLength: 2, reg: v21, asm: "SHA1NEXTE", commutative: false, typ: "Vec128", resultInArg0: true}, {name: "SHA256MSG1128", argLength: 2, reg: v21, asm: "SHA256MSG1", commutative: false, typ: "Vec128", resultInArg0: true}, + {name: "SHA256MSG2128", argLength: 2, reg: v21, asm: "SHA256MSG2", commutative: false, typ: "Vec128", resultInArg0: true}, {name: "SHA256RNDS2128", argLength: 3, reg: v31x0AtIn2, asm: "SHA256RNDS2", commutative: false, typ: "Vec128", resultInArg0: true}, {name: "VADDPD128", argLength: 2, reg: v21, asm: "VADDPD", commutative: true, typ: "Vec128", resultInArg0: false}, {name: "VADDPD256", argLength: 2, reg: v21, asm: "VADDPD", commutative: true, typ: "Vec256", resultInArg0: false}, diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index bb40ff4117..5b8c35bec6 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -1250,6 +1250,7 @@ const ( OpAMD64SHA1MSG2128 OpAMD64SHA1NEXTE128 OpAMD64SHA256MSG1128 + OpAMD64SHA256MSG2128 OpAMD64SHA256RNDS2128 OpAMD64VADDPD128 OpAMD64VADDPD256 @@ -20602,6 +20603,21 @@ var opcodeTable = [...]opInfo{ }, }, { + name: "SHA256MSG2128", + argLen: 2, + resultInArg0: true, + asm: x86.ASHA256MSG2, + reg: regInfo{ + inputs: []inputInfo{ + {0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 + {1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 + }, + outputs: []outputInfo{ + {0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 + }, + }, + }, + { name: "SHA256RNDS2128", argLen: 3, resultInArg0: true, diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index c7995c5c9e..34175c11b8 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -4984,7 +4984,7 @@ func rewriteValueAMD64(v *Value) bool { v.Op = OpAMD64SHA256MSG1128 return true case OpSHA256Message2Uint32x4: - v.Op = OpAMD64SHA256MSG1128 + v.Op = OpAMD64SHA256MSG2128 return true case OpSHA256TwoRoundsUint32x4: v.Op = OpAMD64SHA256RNDS2128 |
