source: tests/bitmanip1.cfa@ d653faf

ADT arm-eh ast-experimental enum forall-pointer-decay jacob/cs343-translation new-ast-unique-expr pthread-emulation qualifiedEnum
Last change on this file since d653faf was da36d25, checked in by Peter A. Buhr <pabuhr@…>, 5 years ago

first complete draft of bitmanip, performance problems with polymorphic functions

  • Property mode set to 100644
File size: 9.9 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2020 University of Waterloo
3//
4// The contents of this file are covered under the licence agreement in the
5// file "LICENCE" distributed with Cforall.
6//
7// bitmanip1.cfa<cfa-cc> --
8//
9// Author : Peter A. Buhr
10// Created On : Tue Apr 7 21:20:29 2020
11// Last Modified By : Peter A. Buhr
12// Last Modified On : Tue Apr 7 21:20:57 2020
13// Update Count : 1
14//
15
16#include <fstream.hfa>
17#include <bitmanip.hfa>
18
19int main() {
20 signed char sc;
21 unsigned char usc;
22 short int si;
23 unsigned short int usi;
24 int i;
25 unsigned int ui;
26 long int li;
27 unsigned long int uli;
28 long long int lli;
29 unsigned long long int ulli;
30
31 //============================================================
32#if 1
33 sout | "leading0s" | nl | nl;
34
35 sout | "signed char";
36 sc = 0;
37 sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | leading0s( sc );
38 for ( sc = 1; sc != 0; sc <<= 1 ) {
39 sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | leading0s( sc );
40 } // for
41 sout | nl;
42 sout | "unsigned char";
43 usc = 0;
44 sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | leading0s( usc );
45 for ( usc = 1; usc != 0; usc <<= 1 ) {
46 sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | leading0s( usc );
47 } // for
48 sout | nl;
49
50 sout | "short int";
51 si = 0;
52 sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | leading0s( si );
53 for ( si = 1; si != 0; si <<= 1 ) {
54 sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | leading0s( si );
55 } // for
56 sout | nl;
57 sout | "unsigned short int";
58 usi = 0;
59 sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | leading0s( usi );
60 for ( usi = 1; usi != 0; usi <<= 1 ) {
61 sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | leading0s( usi );
62 } // for
63 sout | nl;
64
65 sout | "int";
66 i = 0;
67 sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | leading0s( i );
68 for ( i = 1; i != 0; i <<= 1 ) {
69 sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | leading0s( i );
70 } // for
71 sout | nl;
72 sout | "unsigned int";
73 ui = 0;
74 sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | leading0s( ui );
75 for ( ui = 1; ui != 0; ui <<= 1 ) {
76 sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | leading0s( ui );
77 } // for
78 sout | nl;
79
80 sout | "long int";
81 li = 0;
82 sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | leading0s( li );
83 for ( li = 1; li != 0; li <<= 1 ) {
84 sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | leading0s( li );
85 } // for
86 sout | nl;
87 sout | "unsigned long int";
88 uli = 0;
89 sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | leading0s( uli );
90 for ( uli = 1; uli != 0; uli <<= 1 ) {
91 sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | leading0s( uli );
92 } // for
93 sout | nl;
94
95 sout | "long long int";
96 lli = 0;
97 sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | leading0s( lli );
98 for ( lli = 1; lli != 0; lli <<= 1 ) {
99 sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | leading0s( lli );
100 } // for
101 sout | nl;
102 ulli = 0;
103 sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | leading0s( ulli );
104 sout | "unsigned long long int";
105 for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
106 sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | leading0s( ulli );
107 } // for
108 sout | nl;
109#endif // 0
110 //============================================================
111#if 1
112 sout | nl | "trailing0s" | nl | nl;
113
114 sout | "signed char";
115 for ( sc = 1; sc != 0; sc <<= 1 ) {
116 sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | trailing0s( sc );
117 } // for
118 sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | trailing0s( sc );
119 sout | nl;
120 sout | "unsigned char";
121 for ( usc = 1; usc != 0; usc <<= 1 ) {
122 sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | trailing0s( usc );
123 } // for
124 sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | trailing0s( usc );
125 sout | nl;
126
127 sout | "short int";
128 for ( si = 1; si != 0; si <<= 1 ) {
129 sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | trailing0s( si );
130 } // for
131 sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | trailing0s( si );
132 sout | nl;
133 sout | "unsigned short int";
134 for ( usi = 1; usi != 0; usi <<= 1 ) {
135 sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | trailing0s( usi );
136 } // for
137 sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | trailing0s( usi );
138 sout | nl;
139
140 sout | "int";
141 for ( i = 1; i != 0; i <<= 1 ) {
142 sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | trailing0s( i );
143 } // for
144 sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | trailing0s( i );
145 sout | nl;
146 sout | "unsigned int";
147 for ( ui = 1; ui != 0; ui <<= 1 ) {
148 sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | trailing0s( ui );
149 } // for
150 sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | trailing0s( ui );
151 sout | nl;
152
153 sout | "long int";
154 for ( li = 1; li != 0; li <<= 1 ) {
155 sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | trailing0s( li );
156 } // for
157 sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | trailing0s( li );
158 sout | nl;
159 sout | "unsigned long int";
160 for ( uli = 1; uli != 0; uli <<= 1 ) {
161 sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | trailing0s( uli );
162 } // for
163 sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | trailing0s( uli );
164 sout | nl;
165
166 sout | "long long int";
167 for ( lli = 1; lli != 0; lli <<= 1 ) {
168 sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | trailing0s( lli );
169 } // for
170 sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | trailing0s( lli );
171 sout | nl;
172 sout | "unsigned long long int";
173 for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
174 sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | trailing0s( ulli );
175 } // for
176 sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | trailing0s( ulli );
177 sout | nl;
178#endif // 0
179 //============================================================
180#if 1
181 sout | nl | "all0s" | nl | nl;
182
183 sout | "signed char";
184 for ( sc = 0; sc != -1hh; sc = (sc << 1) + 1 ) {
185 sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | all0s( sc );
186 } // for
187 sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | all0s( sc );
188 sout | nl;
189 sout | "unsigned char";
190 for ( usc = 0; usc != -1hh; usc = (usc << 1) + 1 ) {
191 sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | all0s( usc );
192 } // for
193 sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | all0s( usc );
194 sout | nl;
195
196 sout | "short int";
197 for ( si = 0; si != -1h; si = (si << 1) + 1 ) {
198 sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | all0s( si );
199 } // for
200 sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | all0s( si );
201 sout | nl;
202 sout | "unsigned short int";
203 for ( usi = 0; usi != -1h; usi = (usi << 1) + 1 ) {
204 sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | all0s( usi );
205 } // for
206 sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | all0s( usi );
207 sout | nl;
208
209 sout | "int";
210 for ( i = 0; i != -1; i = (i << 1) + 1 ) {
211 sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | all0s( i );
212 } // for
213 sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | all0s( i );
214 sout | nl;
215 sout | "unsigned int";
216 for ( ui = 0; ui != -1; ui = (ui << 1) + 1 ) {
217 sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | all0s( ui );
218 } // for
219 sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | all0s( ui );
220 sout | nl;
221
222 sout | "long int";
223 for ( li = 0; li != -1; li = (li << 1) + 1 ) {
224 sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | all0s( li );
225 } // for
226 sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | all0s( li );
227 sout | nl;
228 sout | "unsigned long int";
229 for ( uli = 0; uli != -1; uli = (uli << 1) + 1 ) {
230 sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | all0s( uli );
231 } // for
232 sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | all0s( uli );
233 sout | nl;
234
235 sout | "long long int";
236 for ( lli = 0; lli != -1; lli = (lli << 1) + 1 ) {
237 sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | all0s( lli );
238 } // for
239 sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | all0s( lli );
240 sout | nl;
241 sout | "unsigned long long int";
242 for ( ulli = 0; ulli != -1; ulli = (ulli << 1) + 1 ) {
243 sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | all0s( ulli );
244 } // for
245 sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | all0s( ulli );
246 sout | nl;
247#endif // 0
248 //============================================================
249#if 1
250 sout | nl | "all1s" | nl | nl;
251
252 sout | "signed char";
253 for ( sc = 0; sc != -1hh; sc = (sc << 1) + 1 ) {
254 sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | all1s( sc );
255 } // for
256 sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | all1s( sc );
257 sout | nl;
258 sout | "unsigned char";
259 for ( usc = 0; usc != -1hh; usc = (usc << 1) + 1 ) {
260 sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | all1s( usc );
261 } // for
262 sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | all1s( usc );
263 sout | nl;
264
265 sout | "short int";
266 for ( si = 0; si != -1h; si = (si << 1) + 1 ) {
267 sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | all1s( si );
268 } // for
269 sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | all1s( si );
270 sout | nl;
271 sout | "unsigned short int";
272 for ( usi = 0; usi != -1h; usi = (usi << 1) + 1 ) {
273 sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | all1s( usi );
274 } // for
275 sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | all1s( usi );
276 sout | nl;
277
278 sout | "int";
279 for ( i = 0; i != -1; i = (i << 1) + 1 ) {
280 sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | all1s( i );
281 } // for
282 sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | all1s( i );
283 sout | nl;
284 sout | "unsigned int";
285 for ( ui = 0; ui != -1; ui = (ui << 1) + 1 ) {
286 sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | all1s( ui );
287 } // for
288 sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | all1s( ui );
289 sout | nl;
290
291 sout | "long int";
292 for ( li = 0; li != -1; li = (li << 1) + 1 ) {
293 sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | all1s( li );
294 } // for
295 sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | all1s( li );
296 sout | nl;
297 sout | "unsigned long int";
298 for ( uli = 0; uli != -1; uli = (uli << 1) + 1 ) {
299 sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | all1s( uli );
300 } // for
301 sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | all1s( uli );
302 sout | nl;
303
304 sout | "long long int";
305 for ( lli = 0; lli != -1; lli = (lli << 1) + 1 ) {
306 sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | all1s( lli );
307 } // for
308 sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | all1s( lli );
309 sout | nl;
310 sout | "unsigned long long int";
311 for ( ulli = 0; ulli != -1; ulli = (ulli << 1) + 1 ) {
312 sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | all1s( ulli );
313 } // for
314 sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | all1s( ulli );
315 sout | nl;
316#endif // 0
317} // main
318
319// Local Variables: //
320// tab-width: 4 //
321// compile-command: "cfa bitmanip1.cfa" //
322// End: //
Note: See TracBrowser for help on using the repository browser.