add FP LD/ST to optable
[libreriscv.git] / openpower / sv / rfc / ls012 / optable.csv
1 op, rfc, priority, cost, SVP64, group, PO1, page, regs
2 # LD/ST-Postincrement
3 lbzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
4 lbzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
5 lhzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
6 lhzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
7 lhaup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
8 lhaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
9 lwzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
10 lwzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
11 lwaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
12 ldup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
13 ldupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
14 stbup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
15 stbupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
16 sthup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
17 sthupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
18 stwup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
19 stwupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
20 stdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
21 stdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
22 # FP LD/ST-Postincrement
23 lfdu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
24 lfsu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W
25 lfdux, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
26 lsdux, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W
27 stfdu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
28 stfsu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W
29 stfdux, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
30 stfsux, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
31 # Bitmanip LUT2/3 operations. high cost high reward
32 grevlut, TBD, high, 3, yes, TBD, no, sv/bitmanip, 2R1W
33 grevluti, TBD, high, 3, yes, TBD, yes, sv/bitmanip, 1R1W
34 ternlogi, ls007, high, 2, yes, TBD, yes, sv/bitmanip, 3R1W1w
35 crternlogi, ls007, high, 5, yes, TBD, yes, sv/bitmanip, 3r1w
36 binlut, ls007, high, 6, yes, TBD, no, sv/bitmanip, 3R1W
37 crbinlut, ls007, high, 5, yes, TBD, no, sv/bitmanip, 3r1w
38 # Float-Load-Immediate (always saves one LD L1/2/3 D-Cache op)
39 fmvis, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1W
40 fishmv, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1R1W
41 # Shift-and-Add (mitigates LD-ST-Shift; Cryptography e.g. twofish)
42 shadd, ls003, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w
43 shadduw, ls003, med, 7, yes, TBD, no, sv/bitmanip, 2R1W1w
44 # Audio-Video
45 absdu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w
46 avgadd, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w
47 minmax, TBD, high, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w
48 absaccs, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w
49 absaccu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w
50 # BMI group
51 bmask, TBD, high, 5, yes, TBD, yes, sv/vector_ops, 2R1W1w
52 cprop, TBD, high, 5, yes, TBD, yes, sv/vector_ops, 2R1W1w
53 # SVP64 Management.
54 setvl, ls008, high, 5, no, EXT0xx, yes, sv/setvl, 3R2W
55 svstep, ls008, high, 5, no, EXT0xx, yes, sv/svstep, 1R2W1w
56 svremap, ls009, high, 5, no, EXT0xx, yes, sv/remap, 1R1W
57 svshape, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W
58 svshape2, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W
59 svindex, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W
60 # GPU swizzle
61 mv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W
62 fmv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W
63 # CR weirds
64 crrweird, TBD, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w
65 mfcrweird, TBD, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w
66 mtcrrweird, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w
67 mtcrweird, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w
68 crweirder, TBD, high, 9, yes, TBD, no, sv/cr_int_predication, 2r1w
69 mcrfm, TBD, high, 9, yes, EXT0xx, no, sv/cr_int_predication, 2r1w
70 # fclass (Scalar variant of xvtstdcsp)
71 fptstp(s), TBD, high, 10, yes, EXT0xx, no, sv/fclass, 1R1w
72 # INT<->FP mv
73 fmvfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w
74 fcvtfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w
75 fcvttg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w
76 fcvtstg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w
77 # Big-Integer Chained 3-in 2-out (64-bit Carry)
78 dsld, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w
79 dsrd, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w
80 maddedu, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W
81 maddedus, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W
82 divmod2du, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W1w
83 # FP DCT/FFT Butterfly (2/3-in 2-out)
84 ffadd(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w
85 ffsub(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w
86 ffmul(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w
87 ffdiv(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w
88 fdmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
89 ffmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
90 ffmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
91 ffnmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
92 ffnmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w
93 # Trigonometric (1-arg)
94 fsin(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
95 fcos(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
96 ftan(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
97 fasin(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
98 facos(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
99 fatan(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
100 fsinpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w
101 fcospi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w
102 ftanpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w
103 fasinpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
104 facospi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
105 fatanpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
106 fsinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
107 fcosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
108 ftanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
109 fasinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
110 facosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
111 fatanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
112 # Transcendentals (1-arg)
113 frsqrt(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
114 fcbrt(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w
115 frecip(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
116 fexp2m1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
117 flog2p1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
118 fexp2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
119 flog2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w
120 fexpm1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
121 flogp1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
122 fexp(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
123 flog(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
124 fexp10m1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
125 flog10p1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
126 fexp10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
127 flog10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w
128 # Transcendentals (2-arg)
129 fatan2(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
130 fatan2pi(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
131 fpow(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
132 fpown(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
133 fpowr(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
134 frootn(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w
135 fhypot(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w
136 fminnum08(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
137 fmaxnum08(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
138 fmin19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
139 fmax19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
140 fminnum19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
141 fmaxnum19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
142 fminc(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
143 fmaxc(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
144 fminmagnum08(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
145 fmaxmagnum08(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
146 fminmag19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
147 fmaxmag19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
148 fminmagnum19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
149 fmaxmagnum19(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
150 fminmagc(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
151 fmaxmagc(s), TBD, high, 10, yes, TBD, no, transcendentals, 2R1W1w
152 fmod(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w
153 fremainder(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w