aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile
diff options
context:
space:
mode:
authorNeal Patel <nealpatel@google.com>2025-11-20 22:28:41 +0000
committerDavid Chase <drchase@google.com>2025-11-21 11:07:17 -0800
commitd3a0321dbad4c2f60bede3bd033b26a5a4839c53 (patch)
tree68e34d8e78d2fb2e6a1427f298905c7e5101825a /src/cmd/compile
parent74ebdd28d10f93fbcb58708c76b5805bc6c114a3 (diff)
downloadgo-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.go3
-rw-r--r--src/cmd/compile/internal/ssa/_gen/simdAMD64.rules2
-rw-r--r--src/cmd/compile/internal/ssa/_gen/simdAMD64ops.go1
-rw-r--r--src/cmd/compile/internal/ssa/opGen.go16
-rw-r--r--src/cmd/compile/internal/ssa/rewriteAMD64.go2
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