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: DotProductQuadruple
37 asm: "VPDPBUSD"
38 operandOrder: "31Zero3" # switch operand 3 and 1, and make 3 always 0
39 in:
40 - &qdpa_acc
41 go: $t_acc
42 base: int
43 elemBits: 32
44 - &qdpa_src1
45 go: $t_src1
46 base: uint
47 overwriteElementBits: 8
48 - &qdpa_src2
49 go: $t_src2
50 base: int
51 overwriteElementBits: 8
52 out:
53 - *qdpa_acc
54 - go: DotProductQuadrupleSaturated
55 asm: "VPDPBUSDS"
56 operandOrder: "31Zero3" # switch operand 3 and 1, and make 3 always 0
57 in:
58 - *qdpa_acc
59 - *qdpa_src1
60 - *qdpa_src2
61 out:
62 - *qdpa_acc
63 - go: AddDotProductPairs
64 asm: "VPDPWSSD"
65 in:
66 - &pdpa_acc
67 go: $t_acc
68 base: int
69 elemBits: 32
70 - &pdpa_src1
71 go: $t_src1
72 base: int
73 overwriteElementBits: 16
74 - &pdpa_src2
75 go: $t_src2
76 base: int
77 overwriteElementBits: 16
78 out:
79 - *pdpa_acc
80 - go: MulAdd
81 asm: "VFMADD213PS|VFMADD213PD"
82 in:
83 - &fma_op
84 go: $t
85 base: float
86 - *fma_op
87 - *fma_op
88 out:
89 - *fma_op
90 - go: MulAddSub
91 asm: "VFMADDSUB213PS|VFMADDSUB213PD"
92 in:
93 - *fma_op
94 - *fma_op
95 - *fma_op
96 out:
97 - *fma_op
98 - go: MulSubAdd
99 asm: "VFMSUBADD213PS|VFMSUBADD213PD"
100 in:
101 - *fma_op
102 - *fma_op
103 - *fma_op
104 out:
105 - *fma_op
106 - go: SumAbsDiff
107 asm: "VPSADBW"
108 in:
109 - go: $t
110 base: uint
111 - go: $t
112 base: uint
113 out:
114 - go: $t2
115 base: uint
View as plain text