[dev.simd] cmd/compile: add more dot products

This CL is generated by CL 680215.

Change-Id: Ie085e65e0473a8e96170702d7265d379ec8812ba
Reviewed-on: https://go-review.googlesource.com/c/go/+/681298
Reviewed-by: David Chase <drchase@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
Junyang Shao 2025-06-12 16:43:10 +00:00
parent 3df41c856e
commit ded6e0ac71
8 changed files with 1439 additions and 0 deletions

View file

@ -427,16 +427,24 @@ func simdGenericOps() []opData {
{name: "MaskedMulLowInt32x16", argLength: 3, commutative: true},
{name: "MaskedNotEqualInt32x16", argLength: 3, commutative: true},
{name: "MaskedOrInt32x16", argLength: 3, commutative: true},
{name: "MaskedPairDotProdAccumulateInt32x16", argLength: 4, commutative: false},
{name: "MaskedPopCountInt32x16", argLength: 2, commutative: false},
{name: "MaskedSaturatedPairDotProdAccumulateInt32x16", argLength: 4, commutative: false},
{name: "MaskedSaturatedUnsignedSignedQuadDotProdAccumulateInt32x16", argLength: 4, commutative: false},
{name: "MaskedSubInt32x16", argLength: 3, commutative: false},
{name: "MaskedUnsignedSignedQuadDotProdAccumulateInt32x16", argLength: 4, commutative: false},
{name: "MaskedXorInt32x16", argLength: 3, commutative: true},
{name: "MaxInt32x16", argLength: 2, commutative: true},
{name: "MinInt32x16", argLength: 2, commutative: true},
{name: "MulLowInt32x16", argLength: 2, commutative: true},
{name: "NotEqualInt32x16", argLength: 2, commutative: true},
{name: "OrInt32x16", argLength: 2, commutative: true},
{name: "PairDotProdAccumulateInt32x16", argLength: 3, commutative: false},
{name: "PopCountInt32x16", argLength: 1, commutative: false},
{name: "SaturatedPairDotProdAccumulateInt32x16", argLength: 3, commutative: false},
{name: "SaturatedUnsignedSignedQuadDotProdAccumulateInt32x16", argLength: 3, commutative: false},
{name: "SubInt32x16", argLength: 2, commutative: false},
{name: "UnsignedSignedQuadDotProdAccumulateInt32x16", argLength: 3, commutative: false},
{name: "XorInt32x16", argLength: 2, commutative: true},
{name: "AbsoluteInt32x4", argLength: 1, commutative: false},
{name: "AddInt32x4", argLength: 2, commutative: true},
@ -461,8 +469,12 @@ func simdGenericOps() []opData {
{name: "MaskedMulLowInt32x4", argLength: 3, commutative: true},
{name: "MaskedNotEqualInt32x4", argLength: 3, commutative: true},
{name: "MaskedOrInt32x4", argLength: 3, commutative: true},
{name: "MaskedPairDotProdAccumulateInt32x4", argLength: 4, commutative: false},
{name: "MaskedPopCountInt32x4", argLength: 2, commutative: false},
{name: "MaskedSaturatedPairDotProdAccumulateInt32x4", argLength: 4, commutative: false},
{name: "MaskedSaturatedUnsignedSignedQuadDotProdAccumulateInt32x4", argLength: 4, commutative: false},
{name: "MaskedSubInt32x4", argLength: 3, commutative: false},
{name: "MaskedUnsignedSignedQuadDotProdAccumulateInt32x4", argLength: 4, commutative: false},
{name: "MaskedXorInt32x4", argLength: 3, commutative: true},
{name: "MaxInt32x4", argLength: 2, commutative: true},
{name: "MinInt32x4", argLength: 2, commutative: true},
@ -470,11 +482,15 @@ func simdGenericOps() []opData {
{name: "MulLowInt32x4", argLength: 2, commutative: true},
{name: "NotEqualInt32x4", argLength: 2, commutative: true},
{name: "OrInt32x4", argLength: 2, commutative: true},
{name: "PairDotProdAccumulateInt32x4", argLength: 3, commutative: false},
{name: "PairwiseAddInt32x4", argLength: 2, commutative: false},
{name: "PairwiseSubInt32x4", argLength: 2, commutative: false},
{name: "PopCountInt32x4", argLength: 1, commutative: false},
{name: "SaturatedPairDotProdAccumulateInt32x4", argLength: 3, commutative: false},
{name: "SaturatedUnsignedSignedQuadDotProdAccumulateInt32x4", argLength: 3, commutative: false},
{name: "SignInt32x4", argLength: 2, commutative: false},
{name: "SubInt32x4", argLength: 2, commutative: false},
{name: "UnsignedSignedQuadDotProdAccumulateInt32x4", argLength: 3, commutative: false},
{name: "XorInt32x4", argLength: 2, commutative: true},
{name: "AbsoluteInt32x8", argLength: 1, commutative: false},
{name: "AddInt32x8", argLength: 2, commutative: true},
@ -499,8 +515,12 @@ func simdGenericOps() []opData {
{name: "MaskedMulLowInt32x8", argLength: 3, commutative: true},
{name: "MaskedNotEqualInt32x8", argLength: 3, commutative: true},
{name: "MaskedOrInt32x8", argLength: 3, commutative: true},
{name: "MaskedPairDotProdAccumulateInt32x8", argLength: 4, commutative: false},
{name: "MaskedPopCountInt32x8", argLength: 2, commutative: false},
{name: "MaskedSaturatedPairDotProdAccumulateInt32x8", argLength: 4, commutative: false},
{name: "MaskedSaturatedUnsignedSignedQuadDotProdAccumulateInt32x8", argLength: 4, commutative: false},
{name: "MaskedSubInt32x8", argLength: 3, commutative: false},
{name: "MaskedUnsignedSignedQuadDotProdAccumulateInt32x8", argLength: 4, commutative: false},
{name: "MaskedXorInt32x8", argLength: 3, commutative: true},
{name: "MaxInt32x8", argLength: 2, commutative: true},
{name: "MinInt32x8", argLength: 2, commutative: true},
@ -508,11 +528,15 @@ func simdGenericOps() []opData {
{name: "MulLowInt32x8", argLength: 2, commutative: true},
{name: "NotEqualInt32x8", argLength: 2, commutative: true},
{name: "OrInt32x8", argLength: 2, commutative: true},
{name: "PairDotProdAccumulateInt32x8", argLength: 3, commutative: false},
{name: "PairwiseAddInt32x8", argLength: 2, commutative: false},
{name: "PairwiseSubInt32x8", argLength: 2, commutative: false},
{name: "PopCountInt32x8", argLength: 1, commutative: false},
{name: "SaturatedPairDotProdAccumulateInt32x8", argLength: 3, commutative: false},
{name: "SaturatedUnsignedSignedQuadDotProdAccumulateInt32x8", argLength: 3, commutative: false},
{name: "SignInt32x8", argLength: 2, commutative: false},
{name: "SubInt32x8", argLength: 2, commutative: false},
{name: "UnsignedSignedQuadDotProdAccumulateInt32x8", argLength: 3, commutative: false},
{name: "XorInt32x8", argLength: 2, commutative: true},
{name: "AbsoluteInt64x2", argLength: 1, commutative: false},
{name: "AddInt64x2", argLength: 2, commutative: true},
@ -845,14 +869,18 @@ func simdGenericOps() []opData {
{name: "MaskedNotEqualUint32x16", argLength: 3, commutative: true},
{name: "MaskedOrUint32x16", argLength: 3, commutative: true},
{name: "MaskedPopCountUint32x16", argLength: 2, commutative: false},
{name: "MaskedSaturatedUnsignedSignedQuadDotProdAccumulateUint32x16", argLength: 4, commutative: false},
{name: "MaskedSubUint32x16", argLength: 3, commutative: false},
{name: "MaskedUnsignedSignedQuadDotProdAccumulateUint32x16", argLength: 4, commutative: false},
{name: "MaskedXorUint32x16", argLength: 3, commutative: true},
{name: "MaxUint32x16", argLength: 2, commutative: true},
{name: "MinUint32x16", argLength: 2, commutative: true},
{name: "NotEqualUint32x16", argLength: 2, commutative: true},
{name: "OrUint32x16", argLength: 2, commutative: true},
{name: "PopCountUint32x16", argLength: 1, commutative: false},
{name: "SaturatedUnsignedSignedQuadDotProdAccumulateUint32x16", argLength: 3, commutative: false},
{name: "SubUint32x16", argLength: 2, commutative: false},
{name: "UnsignedSignedQuadDotProdAccumulateUint32x16", argLength: 3, commutative: false},
{name: "XorUint32x16", argLength: 2, commutative: true},
{name: "AddUint32x4", argLength: 2, commutative: true},
{name: "AndUint32x4", argLength: 2, commutative: true},
@ -875,7 +903,9 @@ func simdGenericOps() []opData {
{name: "MaskedNotEqualUint32x4", argLength: 3, commutative: true},
{name: "MaskedOrUint32x4", argLength: 3, commutative: true},
{name: "MaskedPopCountUint32x4", argLength: 2, commutative: false},
{name: "MaskedSaturatedUnsignedSignedQuadDotProdAccumulateUint32x4", argLength: 4, commutative: false},
{name: "MaskedSubUint32x4", argLength: 3, commutative: false},
{name: "MaskedUnsignedSignedQuadDotProdAccumulateUint32x4", argLength: 4, commutative: false},
{name: "MaskedXorUint32x4", argLength: 3, commutative: true},
{name: "MaxUint32x4", argLength: 2, commutative: true},
{name: "MinUint32x4", argLength: 2, commutative: true},
@ -885,7 +915,9 @@ func simdGenericOps() []opData {
{name: "PairwiseAddUint32x4", argLength: 2, commutative: false},
{name: "PairwiseSubUint32x4", argLength: 2, commutative: false},
{name: "PopCountUint32x4", argLength: 1, commutative: false},
{name: "SaturatedUnsignedSignedQuadDotProdAccumulateUint32x4", argLength: 3, commutative: false},
{name: "SubUint32x4", argLength: 2, commutative: false},
{name: "UnsignedSignedQuadDotProdAccumulateUint32x4", argLength: 3, commutative: false},
{name: "XorUint32x4", argLength: 2, commutative: true},
{name: "AddUint32x8", argLength: 2, commutative: true},
{name: "AndUint32x8", argLength: 2, commutative: true},
@ -908,7 +940,9 @@ func simdGenericOps() []opData {
{name: "MaskedNotEqualUint32x8", argLength: 3, commutative: true},
{name: "MaskedOrUint32x8", argLength: 3, commutative: true},
{name: "MaskedPopCountUint32x8", argLength: 2, commutative: false},
{name: "MaskedSaturatedUnsignedSignedQuadDotProdAccumulateUint32x8", argLength: 4, commutative: false},
{name: "MaskedSubUint32x8", argLength: 3, commutative: false},
{name: "MaskedUnsignedSignedQuadDotProdAccumulateUint32x8", argLength: 4, commutative: false},
{name: "MaskedXorUint32x8", argLength: 3, commutative: true},
{name: "MaxUint32x8", argLength: 2, commutative: true},
{name: "MinUint32x8", argLength: 2, commutative: true},
@ -918,7 +952,9 @@ func simdGenericOps() []opData {
{name: "PairwiseAddUint32x8", argLength: 2, commutative: false},
{name: "PairwiseSubUint32x8", argLength: 2, commutative: false},
{name: "PopCountUint32x8", argLength: 1, commutative: false},
{name: "SaturatedUnsignedSignedQuadDotProdAccumulateUint32x8", argLength: 3, commutative: false},
{name: "SubUint32x8", argLength: 2, commutative: false},
{name: "UnsignedSignedQuadDotProdAccumulateUint32x8", argLength: 3, commutative: false},
{name: "XorUint32x8", argLength: 2, commutative: true},
{name: "AddUint64x2", argLength: 2, commutative: true},
{name: "AndUint64x2", argLength: 2, commutative: true},