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