adjust optable.csv -- [f]minmax[s][.] need 6 XO bits and merge all the fminmax variants
[libreriscv.git] / openpower / sv / rfc / ls012 / optable.csv
1 op, rfc, priority, cost, SVP64, group, PO1, page, regs, Level
2 # LD/ST-Postincrement
3 lbzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, TBD
4 lbzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, TBD
5 lhzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, TBD
6 lhzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, TBD
7 lhaup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, TBD
8 lhaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, TBD
9 lwzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, TBD
10 lwzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, TBD
11 lwaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, TBD
12 ldup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, TBD
13 ldupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, TBD
14 stbup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, TBD
15 stbupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, TBD
16 sthup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, TBD
17 sthupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, TBD
18 stwup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, TBD
19 stwupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, TBD
20 stdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, TBD
21 stdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, TBD
22 # FP LD/ST-Postincrement
23 lfdu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, TBD
24 lfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, TBD
25 lfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, TBD
26 lsdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, TBD
27 stfdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, TBD
28 stfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, TBD
29 stfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, TBD
30 stfsupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, TBD
31 # LD/ST-Shifted-Postincrement
32 lbzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, TBD
33 lhzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, TBD
34 lhauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, TBD
35 lwzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, TBD
36 lwauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, TBD
37 lduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, TBD
38 stbuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, TBD
39 sthuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, TBD
40 stwuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, TBD
41 stduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, TBD
42 # FP LD/ST-Shifted-Postincrement
43 lfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, TBD
44 lsdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, TBD
45 stfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, TBD
46 stfsupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, TBD
47 # LD/ST-Index-Shifted (w/Update)
48 lbzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
49 lbzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, TBD
50 lhzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
51 lhzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, TBD
52 lhasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
53 lhausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, TBD
54 lwzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
55 lwzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, TBD
56 lwasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
57 lwausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, TBD
58 ldsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
59 ldusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, TBD
60 lhbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
61 lwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
62 ldbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
63 stbsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
64 stbusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, TBD
65 sthsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
66 sthusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, TBD
67 stwsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
68 stwusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, TBD
69 stdsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
70 stdusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, TBD
71 sthbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
72 stwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
73 stdbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
74 # FP LD/ST-Index-Shifted (w/Update)
75 lfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
76 lfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
77 lfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
78 lfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
79 lfiwaxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
80 lfiwzxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, TBD
81 stfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
82 stfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, TBD
83 stfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
84 stfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, TBD
85 stfiwxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, TBD
86 # Bitmanip LUT2/3 operations. high cost high reward
87 grevlut, TBD, high, 3, yes, TBD, no, sv/bitmanip, 2R1W, TBD
88 grevluti, TBD, high, 3, yes, TBD, yes, sv/bitmanip, 1R1W, TBD
89 ternlogi, ls007, high, 2, yes, TBD, yes, sv/bitmanip, 3R1W1w, TBD
90 crternlogi, ls007, high, 5, yes, TBD, yes, sv/bitmanip, 3r1w, TBD
91 binlut, ls007, high, 6, yes, TBD, no, sv/bitmanip, 3R1W, TBD
92 crbinlut, ls007, high, 5, yes, TBD, no, sv/bitmanip, 3r1w, TBD
93 # Float-Load-Immediate (always saves one LD L1/2/3 D-Cache op)
94 fmvis, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1W, TBD
95 fishmv, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1R1W, TBD
96 # Shift-and-Add (mitigates LD-ST-Shift; Cryptography e.g. twofish)
97 shadd, ls003, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w, TBD
98 shadduw, ls003, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w, TBD
99 shaddw, ls003, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w, TBD
100 # Audio-Video
101 absdu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w, TBD
102 avgadd, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w, TBD
103 minmax, ls013, high, 6, yes, EXT0xx, no, sv/av_opcodes, 2R1W1w, SFFS
104 absaccs, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w, TBD
105 absaccu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w, TBD
106 # BMI group
107 bmask, TBD, high, 5, yes, EXT0xx, yes, sv/vector_ops, 2R1W1w, SFFS
108 cprop, TBD, high, 5, yes, TBD, yes, sv/vector_ops, 2R1W1w, opt
109 # SVP64 Management.
110 setvl, ls008, high, 5, no, EXT0xx, yes, sv/setvl, 3R2W1w, SV/E
111 svstep, ls008, high, 5, no, EXT0xx, yes, sv/svstep, 1R2W1w, SV/E
112 svremap, ls009, high, 5, no, EXT0xx, yes, sv/remap, 1R1W, SV/D
113 svshape, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D
114 svshape2, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D
115 svindex, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D
116 # GPU swizzle
117 mv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W, opt
118 fmv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W, opt
119 # CR weirds
120 crrweird, TBD, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w, SV/D
121 mfcrweird, TBD, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w, SV/D
122 mtcrrweird, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w, SV/D
123 mtcrweird, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w, SV/D
124 crweirder, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 2r1w, SV/D
125 mcrfm, TBD, high, 9, yes, EXT0xx, no, sv/cr_int_predication, 2r1w, SFFS
126 # fclass (Scalar variant of xvtstdcsp)
127 fptstp(s), TBD, high, 10, yes, EXT0xx, no, sv/fclass, 1R1w, SFFS
128 # INT<->FP mv
129 fmvfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS
130 fcvtfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS
131 fcvttg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS
132 fcvtstg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS
133 # Big-Integer Chained 3-in 2-out (64-bit Carry)
134 dsld, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS
135 dsrd, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS
136 maddedu, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W, SFFS
137 maddedus, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W, SFFS
138 divmod2du, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS
139 # FP DCT/FFT Butterfly (2/3-in 2-out)
140 ffadd(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt
141 ffsub(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt
142 ffmul(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt
143 ffdiv(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt
144 fdmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt
145 ffmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt
146 ffmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt
147 ffnmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt
148 ffnmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt
149 # Trigonometric (1-arg)
150 fsin(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
151 fcos(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
152 ftan(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
153 fasin(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
154 facos(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
155 fatan(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
156 fsinpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
157 fcospi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
158 ftanpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
159 fasinpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
160 facospi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
161 fatanpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
162 fsinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
163 fcosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
164 ftanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
165 fasinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
166 facosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
167 fatanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
168 # Transcendentals (1-arg)
169 frsqrt(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
170 fcbrt(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, TBD
171 frecip(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
172 fexp2m1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
173 flog2p1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
174 fexp2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
175 flog2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, TBD
176 fexpm1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
177 flogp1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
178 fexp(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
179 flog(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
180 fexp10m1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
181 flog10p1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
182 fexp10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
183 flog10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, TBD
184 # Transcendentals (2-arg)
185 fatan2(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt
186 fatan2pi(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt
187 fpow(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt
188 fpown(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt
189 fpowr(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt
190 frootn(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt
191 fhypot(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt
192 fminmax, ls013, high, 6, yes, EXT0xx, no, transcendentals, 2R1W1w, SFFS
193 fminmaxs, ls013, high, 6, yes, EXT0xx, no, transcendentals, 2R1W1w, SFFS
194 fmod(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt
195 fremainder(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt