add Levels table to ls012
[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, SFFS
4 lbzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS
5 lhzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS
6 lhzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS
7 lhaup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS
8 lhaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS
9 lwzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS
10 lwzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS
11 lwaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS
12 ldup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS
13 ldupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS
14 stbup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS
15 stbupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS
16 sthup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS
17 sthupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS
18 stwup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS
19 stwupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS
20 stdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS
21 stdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS
22 # FP LD/ST-Postincrement
23 lfdu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS
24 lfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS
25 lfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS
26 lsdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS
27 stfdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS
28 stfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS
29 stfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS
30 stfsupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS
31 # LD/ST-Shifted-Postincrement
32 lbzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS
33 lhzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS
34 lhauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS
35 lwzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS
36 lwauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS
37 lduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS
38 stbuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS
39 sthuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS
40 stwuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS
41 stduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS
42 # FP LD/ST-Shifted-Postincrement
43 lfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS
44 lsdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS
45 stfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS
46 stfsupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS
47 # LD/ST-Index-Shifted (w/Update)
48 lbzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
49 lbzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS
50 lhzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
51 lhzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS
52 lhasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
53 lhausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS
54 lwzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
55 lwzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS
56 lwasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
57 lwausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS
58 ldsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
59 ldusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS
60 lhbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
61 lwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
62 ldbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
63 stbsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
64 stbusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS
65 sthsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
66 sthusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS
67 stwsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
68 stwusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS
69 stdsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
70 stdusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS
71 sthbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
72 stwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
73 stdbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
74 # FP LD/ST-Index-Shifted (w/Update)
75 lfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
76 lfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
77 lfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
78 lfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
79 lfiwaxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
80 lfiwzxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS
81 stfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
82 stfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS
83 stfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
84 stfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS
85 stfiwxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS
86 # Bitmanip LUT2/3 operations. high cost high reward
87 grevlut, TBD, high, 3, yes, TBD, no, sv/bitmanip, 2R1W, opt
88 grevluti, TBD, high, 3, yes, TBD, yes, sv/bitmanip, 1R1W, opt
89 ternlogi, ls007, high, 2, yes, TBD, yes, sv/bitmanip, 3R1W1w, SFFS
90 crternlogi, ls007, high, 5, yes, TBD, yes, sv/bitmanip, 3r1w, SV/D
91 binlut, ls007, high, 6, yes, TBD, no, sv/bitmanip, 3R1W, SFFS
92 crbinlut, ls007, high, 5, yes, TBD, no, sv/bitmanip, 3r1w, SV/D
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, SFFS
95 fishmv, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1R1W, SFFS
96 # Shift-and-Add (mitigates LD-ST-Shift; Cryptography e.g. twofish)
97 shadd, ls004, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w, SFFS
98 shadduw, ls004, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w, SFFS
99 shaddw, ls004, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w, SFFS
100 # Audio-Video
101 absdu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w, SV/D
102 avgadd, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w, SV/D
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, SV/D
105 absaccu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w, SV/D
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 fmvtg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS
130 fmvfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS
131 fcvtfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS
132 fcvttg(s), ls006, high, 9, 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, SV/S
151 fcos(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S
152 ftan(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S
153 fasin(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
154 facos(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
155 fatan(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
156 fsinpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S
157 fcospi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S
158 ftanpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S
159 fasinpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
160 facospi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
161 fatanpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
162 fsinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
163 fcosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
164 ftanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
165 fasinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
166 facosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
167 fatanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
168 # Transcendentals (1-arg)
169 frsqrt(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S
170 fcbrt(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt
171 frecip(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S
172 fexp2m1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S
173 flog2p1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S
174 fexp2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S
175 flog2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S
176 fexpm1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt
177 flogp1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt
178 fexp(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt
179 flog(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt
180 fexp10m1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt
181 flog10p1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt
182 fexp10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt
183 flog10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt
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