blob: d26b846d47078878ecfe181d21ec0bddf2bc18ec [file] [log] [blame]
!sum
- go: PairDotProd
commutative: false
extension: "AVX.*"
documentation: !string |-
// PairDotProd multiplies the elements and add the pairs together,
// yielding a vector of half as many elements with twice the input element size.
- go: PairDotProdMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// PairDotProdMasked multiplies the elements and add the pairs together,
// yielding a vector of half as many elements with twice the input element size.
# TODO: maybe simplify this name within the receiver-type + method-naming scheme we use.
- go: SaturatedUnsignedSignedPairDotProd
commutative: false
extension: "AVX.*"
documentation: !string |-
// SaturatedUnsignedSignedPairDotProd multiplies the elements and add the pairs together with saturation,
// yielding a vector of half as many elements with twice the input element size.
- go: SaturatedUnsignedSignedPairDotProdMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// SaturatedUnsignedSignedPairDotProdMasked multiplies the elements and add the pairs together with saturation,
// yielding a vector of half as many elements with twice the input element size.
# QuadDotProd, i.e. VPDPBUSD(S) are operations with src/dst on the same register, we are not supporting this as of now.
- go: DotProdBroadcast
commutative: true
extension: "AVX.*"
documentation: !string |-
// DotProdBroadcast multiplies all elements and broadcasts the sum.
- go: UnsignedSignedQuadDotProdAccumulate
commutative: false
extension: "AVX.*"
documentation: !string |-
// UnsignedSignedQuadDotProdAccumulate performs dot products on groups of 4 elements of x and y and then adds z.
- go: UnsignedSignedQuadDotProdAccumulateMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// UnsignedSignedQuadDotProdAccumulateMasked performs dot products on groups of 4 elements of x and y and then adds z.
- go: SaturatedUnsignedSignedQuadDotProdAccumulate
commutative: false
extension: "AVX.*"
documentation: !string |-
// SaturatedUnsignedSignedQuadDotProdAccumulate multiplies performs dot products on groups of 4 elements of x and y and then adds z.
- go: SaturatedUnsignedSignedQuadDotProdAccumulateMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// SaturatedUnsignedSignedQuadDotProdAccumulateMasked multiplies performs dot products on groups of 4 elements of x and y and then adds z.
- go: PairDotProdAccumulate
commutative: false
extension: "AVX.*"
documentation: !string |-
// PairDotProdAccumulate performs dot products on pairs of elements of x and y and then adds z.
- go: PairDotProdAccumulateMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// PairDotProdAccumulateMasked performs dot products on pairs of elements of x and y and then adds z.
- go: SaturatedPairDotProdAccumulate
commutative: false
extension: "AVX.*"
documentation: !string |-
// SaturatedPairDotProdAccumulate performs dot products on pairs of elements of x and y and then adds z.
- go: SaturatedPairDotProdAccumulateMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// SaturatedPairDotProdAccumulateMasked performs dot products on pairs of elements of x and y and then adds z.
- go: FusedMultiplyAddMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// FusedMultiplyAddMasked performs (x * y) + z.
- go: FusedMultiplyAddSubMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// FusedMultiplyAddSubMasked performs (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
- go: FusedMultiplySubAddMasked
masked: true
commutative: false
extension: "AVX.*"
documentation: !string |-
// FusedMultiplySubAddMasked performs (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.