1 !sum
2 - go: DotProductPairs
3 asm: VPMADDWD
4 in:
5 - &int
6 go: $t
7 base: int
8 - *int
9 out:
10 - &int2 # The elemBits are different
11 go: $t2
12 base: int
13 - go: DotProductPairsSaturated
14 asm: VPMADDUBSW
15 in:
16 - &uint
17 go: $t
18 base: uint
19 overwriteElementBits: 8
20 - &int3
21 go: $t3
22 base: int
23 overwriteElementBits: 8
24 out:
25 - *int2
26 # - go: DotProductBroadcast
27 # asm: VDPP[SD]
28 # in:
29 # - &dpb_src
30 # go: $t
31 # - *dpb_src
32 # - class: immediate
33 # const: 127
34 # out:
35 # - *dpb_src
36 - go: AddDotProductPairs
37 asm: "VPDPWSSD"
38 in:
39 - &pdpa_acc
40 go: $t_acc
41 base: int
42 elemBits: 32
43 - &pdpa_src1
44 go: $t_src1
45 base: int
46 overwriteElementBits: 16
47 - &pdpa_src2
48 go: $t_src2
49 base: int
50 overwriteElementBits: 16
51 out:
52 - *pdpa_acc
53 - go: MulAdd
54 asm: "VFMADD213PS|VFMADD213PD"
55 documentation: !string |-
56 // NAME performs a fused (x * y) + z.
57 in:
58 - &fma_op
59 go: $t
60 base: float
61 - *fma_op
62 - *fma_op
63 out:
64 - *fma_op
65 - go: MulAddEvenSubOdd
66 asm: "VFMADDSUB213PS|VFMADDSUB213PD"
67 in:
68 - *fma_op
69 - *fma_op
70 - *fma_op
71 out:
72 - *fma_op
73 - go: MulAddOddSubEven
74 asm: "VFMSUBADD213PS|VFMSUBADD213PD"
75 in:
76 - *fma_op
77 - *fma_op
78 - *fma_op
79 out:
80 - *fma_op
81 - go: SumOf8AbsDiff
82 asm: "VPSADBW"
83 in:
84 - go: $t
85 base: uint
86 - go: $t
87 base: uint
88 out:
89 - base: uint
90 overwriteElementBits: 64
91
View as plain text