case ssa.OpAMD64SHA1MSG1128,
ssa.OpAMD64SHA1MSG2128,
ssa.OpAMD64SHA1NEXTE128,
- ssa.OpAMD64SHA256MSG1128:
+ ssa.OpAMD64SHA256MSG1128,
+ ssa.OpAMD64SHA256MSG2128:
p = simdV21ResultInArg0(s, v)
case ssa.OpAMD64SHA1RNDS4128:
(SHA1Message2Uint32x4 ...) => (SHA1MSG2128 ...)
(SHA1NextEUint32x4 ...) => (SHA1NEXTE128 ...)
(SHA256Message1Uint32x4 ...) => (SHA256MSG1128 ...)
-(SHA256Message2Uint32x4 ...) => (SHA256MSG1128 ...)
+(SHA256Message2Uint32x4 ...) => (SHA256MSG2128 ...)
(SHA256TwoRoundsUint32x4 ...) => (SHA256RNDS2128 ...)
(ScaleFloat32x4 ...) => (VSCALEFPS128 ...)
(ScaleFloat32x8 ...) => (VSCALEFPS256 ...)
{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},
OpAMD64SHA1MSG2128
OpAMD64SHA1NEXTE128
OpAMD64SHA256MSG1128
+ OpAMD64SHA256MSG2128
OpAMD64SHA256RNDS2128
OpAMD64VADDPD128
OpAMD64VADDPD256
},
},
},
+ {
+ 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,
// y = {0, 0, W14, W15}
// result = {W16, W17, W18, W19}
//
-// Asm: SHA256MSG1, CPU Feature: SHA
+// Asm: SHA256MSG2, CPU Feature: SHA
func (x Uint32x4) SHA256Message2(y Uint32x4) Uint32x4
/* SHA256TwoRounds */