1 !sum
2 - go: DotProductPairs
3 commutative: false
4 documentation: !string |-
5 // NAME multiplies the elements and add the pairs together,
6 // yielding a vector of half as many elements with twice the input element size.
7 # TODO: maybe simplify this name within the receiver-type + method-naming scheme we use.
8 - go: DotProductPairsSaturated
9 commutative: false
10 documentation: !string |-
11 // NAME multiplies the elements and add the pairs together with saturation,
12 // yielding a vector of half as many elements with twice the input element size.
13 # QuadDotProduct, i.e. VPDPBUSD(S) are operations with src/dst on the same register, we are not supporting this as of now.
14 # - go: DotProductBroadcast
15 # commutative: true
16 # # documentation: !string |-
17 # // NAME multiplies all elements and broadcasts the sum.
18 - go: DotProductQuadruple
19 commutative: false
20 documentation: !string |-
21 // NAME performs dot products on groups of 4 elements of x and y.
22 // NAME(x, y).Add(z) will be optimized to the full form of the underlying instruction.
23 - go: DotProductQuadrupleSaturated
24 commutative: false
25 documentation: !string |-
26 // NAME multiplies performs dot products on groups of 4 elements of x and y.
27 // NAME(x, y).Add(z) will be optimized to the full form of the underlying instruction.
28 - go: AddDotProductPairs
29 commutative: false
30 noTypes: "true"
31 noGenericOps: "true"
32 documentation: !string |-
33 // NAME performs dot products on pairs of elements of y and z and then adds x.
34 - go: MulAdd
35 commutative: false
36 documentation: !string |-
37 // NAME performs a fused (x * y) + z.
38 - go: MulAddSub
39 commutative: false
40 documentation: !string |-
41 // NAME performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
42 - go: MulSubAdd
43 commutative: false
44 documentation: !string |-
45 // NAME performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
46 - go: SumAbsDiff
47 commutative: false
48 documentation: !string |-
49 // NAME sums the absolute distance of the two input vectors, each adjacent 8 bytes as a group. The output sum will
50 // be a vector of word-sized elements whose each 4*n-th element contains the sum of the n-th input group. The other elements in the result vector are zeroed.
51 // This method could be seen as the norm of the L1 distance of each adjacent 8-byte vector group of the two input vectors.
52
View as plain text