-
Notifications
You must be signed in to change notification settings - Fork 16
/
mul11u_0CV.c
545 lines (544 loc) · 18.8 KB
/
mul11u_0CV.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
/***
* This code is a part of EvoApproxLib library (ehw.fit.vutbr.cz/approxlib) distributed under The MIT License.
* When used, please cite the following article(s): V. Mrazek, S. S. Sarwar, L. Sekanina, Z. Vasicek and K. Roy, "Design of power-efficient approximate multipliers for approximate artificial neural networks," 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), Austin, TX, 2016, pp. 1-7. doi: 10.1145/2966986.2967021
* This file contains a circuit from a sub-set of pareto optimal circuits with respect to the pwr and mse parameters
***/
// MAE% = 0.034 %
// MAE = 1414
// WCE% = 0.20 %
// WCE = 8386
// WCRE% = 4352.17 %
// EP% = 99.84 %
// MRE% = 1.15 %
// MSE = 31888.497e2
// PDK45_PWR = 0.657 mW
// PDK45_AREA = 1066.7 um2
// PDK45_DELAY = 1.60 ns
#include <stdint.h>
#include <stdlib.h>
uint64_t mul11u_0CV(uint64_t a, uint64_t b) {
int wa[11];
int wb[11];
uint64_t y = 0;
wa[0] = (a >> 0) & 0x01;
wb[0] = (b >> 0) & 0x01;
wa[1] = (a >> 1) & 0x01;
wb[1] = (b >> 1) & 0x01;
wa[2] = (a >> 2) & 0x01;
wb[2] = (b >> 2) & 0x01;
wa[3] = (a >> 3) & 0x01;
wb[3] = (b >> 3) & 0x01;
wa[4] = (a >> 4) & 0x01;
wb[4] = (b >> 4) & 0x01;
wa[5] = (a >> 5) & 0x01;
wb[5] = (b >> 5) & 0x01;
wa[6] = (a >> 6) & 0x01;
wb[6] = (b >> 6) & 0x01;
wa[7] = (a >> 7) & 0x01;
wb[7] = (b >> 7) & 0x01;
wa[8] = (a >> 8) & 0x01;
wb[8] = (b >> 8) & 0x01;
wa[9] = (a >> 9) & 0x01;
wb[9] = (b >> 9) & 0x01;
wa[10] = (a >> 10) & 0x01;
wb[10] = (b >> 10) & 0x01;
int sig_30 = wa[8] & wb[2];
int sig_31 = wa[9] & wb[0];
int sig_32 = wa[0] & wb[7];
int sig_39 = ~(wa[5] ^ wb[1]);
int sig_41 = wa[4] & wb[1];
int sig_42 = wa[9] & wb[1];
int sig_43 = wa[10] & wb[1];
int sig_51 = wa[7] & wb[2];
int sig_52 = wa[8] & wb[2];
int sig_53 = wa[9] & wb[2];
int sig_54 = wa[10] & wb[2];
int sig_61 = wa[6] & wb[3];
int sig_62 = wa[7] & wb[3];
int sig_63 = wa[8] & wb[3];
int sig_64 = wa[9] & wb[3];
int sig_65 = wa[10] & wb[3];
int sig_71 = wa[5] & wb[8];
int sig_72 = wa[6] & wb[4];
int sig_73 = wa[7] & wb[4];
int sig_74 = wa[8] & wb[4];
int sig_75 = wa[9] & wb[4];
int sig_76 = wa[10] & wb[4];
int sig_81 = wa[4] & wb[5];
int sig_82 = wa[5] & wb[3];
int sig_83 = wa[6] & wb[5];
int sig_84 = wa[7] & wb[5];
int sig_85 = wa[8] & wb[5];
int sig_86 = wa[9] & wb[5];
int sig_87 = wa[10] & wb[5];
int sig_89 = wa[1] & wb[1];
int sig_91 = wa[3] & wb[6];
int sig_92 = wa[4] & wb[6];
int sig_93 = wa[5] & wb[6];
int sig_94 = wa[6] & wb[6];
int sig_95 = wa[7] & wb[6];
int sig_96 = wa[8] & wb[6];
int sig_97 = wa[9] & wb[6];
int sig_98 = wa[10] & wb[6];
int sig_99 = wa[0] & wb[7];
int sig_101 = wa[2] & wb[0];
int sig_102 = wa[3] & wb[7];
int sig_103 = wa[4] & wb[7];
int sig_104 = wa[5] & wb[7];
int sig_105 = wa[6] & wb[7];
int sig_106 = wa[7] & wb[7];
int sig_107 = wa[8] & wb[7];
int sig_108 = wa[9] & wb[7];
int sig_109 = wa[10] & wb[7];
int sig_111 = wa[1] & wb[0];
int sig_112 = wa[2] & wb[8];
int sig_113 = wa[3] & wb[8];
int sig_114 = wa[4] & wb[8];
int sig_115 = wa[5] & wb[8];
int sig_116 = wa[6] & wb[8];
int sig_117 = wa[7] & wb[8];
int sig_118 = wa[8] & wb[8];
int sig_119 = wa[9] & wb[8];
int sig_120 = wa[10] & wb[8];
int sig_121 = wb[9] & wb[9];
int sig_122 = wa[1] & wb[9];
int sig_123 = wa[2] & wb[9];
int sig_124 = wa[3] & wb[9];
int sig_125 = wa[4] & wb[9];
int sig_126 = wa[5] & wb[9];
int sig_127 = wa[6] & wb[9];
int sig_128 = wa[7] & wb[9];
int sig_129 = wa[8] & wb[9];
int sig_130 = wa[9] & wb[9];
int sig_131 = wa[10] & wb[9];
int sig_132 = wa[0] & wb[10];
int sig_133 = wa[1] & wb[10];
int sig_134 = wa[2] & wb[10];
int sig_135 = wa[3] & wb[10];
int sig_136 = wa[4] & wb[10];
int sig_137 = wa[5] & wb[10];
int sig_138 = wa[6] & wb[10];
int sig_139 = wa[7] & wb[10];
int sig_140 = wa[8] & wb[10];
int sig_141 = wa[9] & wb[10];
int sig_142 = wa[10] & wb[10];
int sig_171 = wb[1] & sig_39;
int sig_174 = sig_171 | wa[3];
int sig_175 = sig_30 ^ wa[7];
int sig_177 = wb[4] & wa[5];
int sig_178 = sig_175 ^ wa[10];
int sig_179 = wa[7] | sig_177;
int sig_180 = sig_31 ^ sig_41;
int sig_181 = sig_31 & sig_41;
int sig_182 = wa[6] & sig_51;
int sig_183 = sig_180 & sig_51;
int sig_184 = sig_181 ^ sig_182;
int sig_185 = wa[2] & sig_42;
int sig_186 = sig_32 & wa[4];
int sig_187 = wa[9] & sig_52;
int sig_188 = sig_185 ^ sig_52;
int sig_189 = sig_186 | sig_187;
int sig_190 = sig_43 & sig_53;
int sig_191 = sig_43 ^ sig_53;
int sig_200 = wb[7] & wa[4];
int sig_203 = sig_200;
int sig_212 = wa[0] | wb[8];
int sig_214 = sig_61 ^ sig_71;
int sig_215 = sig_61 & sig_71;
int sig_216 = sig_214 & sig_81;
int sig_217 = sig_214 | sig_81;
int sig_218 = sig_215 | sig_216;
int sig_219 = sig_62 ^ sig_72;
int sig_220 = sig_62 & sig_72;
int sig_221 = sig_219 & sig_82;
int sig_222 = sig_219 ^ sig_82;
int sig_223 = sig_220 ^ sig_221;
int sig_224 = sig_63 ^ sig_73;
int sig_225 = sig_63 & sig_73;
int sig_226 = sig_224 & sig_83;
int sig_227 = sig_224 ^ sig_83;
int sig_228 = sig_225 | sig_226;
int sig_229 = sig_64 ^ sig_74;
int sig_230 = sig_64 & sig_74;
int sig_231 = sig_229 & sig_84;
int sig_232 = sig_229 ^ sig_84;
int sig_233 = sig_230 | sig_231;
int sig_234 = sig_65 ^ sig_75;
int sig_235 = sig_65 & sig_75;
int sig_236 = sig_234 & sig_85;
int sig_237 = sig_234 ^ sig_85;
int sig_238 = sig_235 | sig_236;
int sig_239 = sig_76 & sig_86;
int sig_240 = sig_76 ^ sig_86;
int sig_241 = sig_89 ^ sig_99;
int sig_247 = ~(wb[2] ^ wb[6]);
int sig_248 = sig_91 & sig_101;
int sig_249 = sig_91 & sig_101;
int sig_250 = sig_248 & sig_111;
int sig_252 = sig_249 | sig_250;
int sig_253 = sig_92 | sig_102;
int sig_254 = sig_92 & sig_102;
int sig_255 = sig_253 & sig_112;
int sig_256 = sig_253 | sig_112;
int sig_257 = sig_254 | sig_255;
int sig_258 = sig_93 ^ sig_103;
int sig_259 = sig_93 & sig_103;
int sig_260 = sig_258 & sig_113;
int sig_261 = sig_258 ^ sig_113;
int sig_262 = sig_259 | sig_260;
int sig_263 = sig_94 ^ sig_104;
int sig_264 = sig_94 & sig_104;
int sig_265 = sig_263 & sig_114;
int sig_266 = sig_263 ^ sig_114;
int sig_267 = sig_264 | sig_265;
int sig_268 = sig_95 ^ sig_105;
int sig_269 = sig_95 & sig_105;
int sig_270 = sig_268 & sig_115;
int sig_271 = sig_268 ^ sig_115;
int sig_272 = sig_269 | sig_270;
int sig_273 = sig_96 ^ sig_106;
int sig_274 = sig_96 & sig_106;
int sig_275 = sig_273 & sig_116;
int sig_276 = sig_273 ^ sig_116;
int sig_277 = sig_274 | sig_275;
int sig_278 = sig_97 ^ sig_107;
int sig_279 = sig_97 & sig_107;
int sig_280 = sig_278 & sig_117;
int sig_281 = sig_278 ^ sig_117;
int sig_282 = sig_279 | sig_280;
int sig_283 = sig_98 ^ sig_108;
int sig_284 = sig_98 & sig_108;
int sig_285 = sig_283 & sig_118;
int sig_286 = sig_283 ^ sig_118;
int sig_287 = sig_284 | sig_285;
int sig_288 = sig_109 & sig_119;
int sig_289 = sig_109 ^ sig_119;
int sig_311 = wb[0] & wa[9];
int sig_318 = sig_178 & sig_174;
int sig_320 = wb[4] | sig_212;
int sig_321 = sig_318 ^ wa[1];
int sig_322 = sig_183 ^ sig_179;
int sig_323 = sig_183 & sig_179;
int sig_324 = wb[0] & sig_217;
int sig_325 = sig_322;
int sig_326 = sig_323 | sig_324;
int sig_327 = sig_188 ^ sig_184;
int sig_328 = sig_188 & sig_184;
int sig_329 = sig_327 & sig_222;
int sig_330 = sig_327 ^ sig_222;
int sig_331 = sig_328 | sig_329;
int sig_332 = sig_191 ^ sig_189;
int sig_333 = sig_191 & sig_189;
int sig_334 = sig_332 & sig_227;
int sig_335 = sig_332 ^ sig_227;
int sig_336 = sig_333 | sig_334;
int sig_337 = sig_54 ^ sig_190;
int sig_338 = wa[10] & sig_190;
int sig_339 = sig_337 & sig_232;
int sig_340 = sig_337 ^ sig_232;
int sig_341 = sig_338 ^ sig_339;
int sig_344 = sig_203 ^ sig_241;
int sig_345 = sig_203 & wb[0];
int sig_350 = wb[9] | wb[9];
int sig_351 = wb[8];
int sig_354 = sig_351 & sig_247;
int sig_355 = ~(wb[2] | wa[9]);
int sig_356 = sig_218 ^ sig_256;
int sig_357 = sig_218 & sig_256;
int sig_358 = wa[5] & sig_252;
int sig_359 = sig_356 ^ sig_252;
int sig_360 = sig_357 | sig_358;
int sig_361 = sig_223 ^ sig_261;
int sig_362 = sig_223 & sig_261;
int sig_363 = sig_361 & sig_257;
int sig_364 = sig_361 ^ sig_257;
int sig_365 = sig_362 ^ sig_363;
int sig_366 = sig_228 ^ sig_266;
int sig_367 = sig_228 & sig_266;
int sig_368 = sig_366 & sig_262;
int sig_369 = sig_366 ^ sig_262;
int sig_370 = sig_367 ^ sig_368;
int sig_371 = sig_233 ^ sig_271;
int sig_372 = sig_233 & sig_271;
int sig_373 = sig_371 & sig_267;
int sig_374 = sig_371 ^ sig_267;
int sig_375 = sig_372 | sig_373;
int sig_376 = sig_238 ^ sig_276;
int sig_377 = sig_238 & sig_276;
int sig_378 = sig_376 & sig_272;
int sig_379 = sig_376 ^ sig_272;
int sig_380 = sig_377 ^ sig_378;
int sig_381 = sig_239 ^ sig_281;
int sig_382 = sig_239 & sig_281;
int sig_383 = sig_381 & sig_277;
int sig_384 = sig_381 ^ sig_277;
int sig_385 = sig_382 | sig_383;
int sig_386 = sig_286 & sig_282;
int sig_387 = sig_286 ^ sig_282;
int sig_388 = sig_289 & sig_287;
int sig_389 = sig_289 ^ sig_287;
int sig_390 = wa[9] & sig_288;
int sig_391 = sig_120 ^ sig_288;
int sig_407 = wa[4] & sig_311;
int sig_408 = wa[4] & sig_344;
int sig_410 = sig_407 | sig_408;
int sig_412 = !sig_320;
int sig_413 = wb[1] & wb[2];
int sig_415 = sig_412 | sig_413;
int sig_416 = sig_325 ^ sig_321;
int sig_417 = sig_325 & wb[9];
int sig_418 = sig_416 & wb[8];
int sig_419 = sig_416 ^ sig_354;
int sig_420 = sig_417 | sig_418;
int sig_421 = sig_330 ^ sig_326;
int sig_422 = sig_330 & sig_326;
int sig_423 = sig_421 & sig_359;
int sig_424 = sig_421 ^ sig_359;
int sig_425 = sig_422 | sig_423;
int sig_426 = sig_335 ^ sig_331;
int sig_427 = sig_335 & sig_331;
int sig_428 = sig_426 & sig_364;
int sig_429 = sig_426 ^ sig_364;
int sig_430 = sig_427 | sig_428;
int sig_431 = sig_340 ^ sig_336;
int sig_432 = sig_340 & sig_336;
int sig_433 = sig_431 & sig_369;
int sig_434 = sig_431 ^ sig_369;
int sig_435 = sig_432 | sig_433;
int sig_436 = sig_237 ^ sig_341;
int sig_437 = sig_237 & sig_341;
int sig_438 = sig_436 & sig_374;
int sig_439 = sig_436 ^ sig_374;
int sig_440 = sig_437 | sig_438;
int sig_441 = sig_240 & sig_379;
int sig_442 = sig_240 ^ sig_379;
int sig_443 = sig_87 & sig_384;
int sig_444 = sig_87 ^ sig_384;
int sig_445 = sig_350 ^ sig_121;
int sig_447 = sig_355 & sig_122;
int sig_448 = wa[1] & sig_122;
int sig_449 = sig_447 & wa[2];
int sig_450 = sig_447 | sig_132;
int sig_451 = sig_448 | sig_449;
int sig_452 = sig_360 ^ sig_123;
int sig_453 = sig_360 & sig_123;
int sig_454 = sig_452 & sig_133;
int sig_455 = sig_452 ^ sig_133;
int sig_456 = sig_453 | sig_454;
int sig_457 = sig_365 ^ sig_124;
int sig_458 = sig_365 & sig_124;
int sig_459 = sig_457 & sig_134;
int sig_460 = sig_457 ^ sig_134;
int sig_461 = sig_458 | sig_459;
int sig_462 = sig_370 ^ sig_125;
int sig_463 = sig_370 & sig_125;
int sig_464 = sig_462 & sig_135;
int sig_465 = sig_462 ^ sig_135;
int sig_466 = sig_463 | sig_464;
int sig_467 = sig_375 ^ sig_126;
int sig_468 = sig_375 & sig_126;
int sig_469 = sig_467 & sig_136;
int sig_470 = sig_467 ^ sig_136;
int sig_471 = sig_468 | sig_469;
int sig_472 = sig_380 ^ sig_127;
int sig_473 = sig_380 & sig_127;
int sig_474 = sig_472 & sig_137;
int sig_475 = sig_472 ^ sig_137;
int sig_476 = sig_473 | sig_474;
int sig_477 = sig_385 ^ sig_128;
int sig_478 = sig_385 & sig_128;
int sig_479 = sig_477 & sig_138;
int sig_480 = sig_477 ^ sig_138;
int sig_481 = sig_478 | sig_479;
int sig_482 = sig_386 ^ sig_129;
int sig_483 = sig_386 & sig_129;
int sig_484 = sig_482 & sig_139;
int sig_485 = sig_482 ^ sig_139;
int sig_486 = sig_483 | sig_484;
int sig_487 = sig_388 ^ sig_130;
int sig_488 = sig_388 & sig_130;
int sig_489 = sig_487 & sig_140;
int sig_490 = sig_487 ^ sig_140;
int sig_491 = sig_488 | sig_489;
int sig_492 = sig_390 ^ sig_131;
int sig_493 = sig_390 & sig_131;
int sig_494 = sig_492 & sig_141;
int sig_495 = sig_492 ^ sig_141;
int sig_496 = sig_493 | sig_494;
int sig_509 = wa[2] & sig_410;
int sig_510 = wa[9] & sig_345;
int sig_512 = sig_509 | sig_510;
int sig_513 = sig_419 ^ sig_415;
int sig_515 = wb[5] & sig_445;
int sig_516 = sig_513 ^ sig_445;
int sig_517 = wa[2] & sig_515;
int sig_518 = sig_424 ^ sig_420;
int sig_519 = sig_424 & sig_420;
int sig_520 = sig_518 & sig_450;
int sig_521 = sig_518 ^ sig_450;
int sig_522 = sig_519 | sig_520;
int sig_523 = sig_429 ^ sig_425;
int sig_524 = sig_429 & sig_425;
int sig_525 = sig_523 & sig_455;
int sig_526 = sig_523 ^ sig_455;
int sig_527 = sig_524 ^ sig_525;
int sig_528 = sig_434 ^ sig_430;
int sig_529 = sig_434 & sig_430;
int sig_530 = sig_528 & sig_460;
int sig_531 = sig_528 ^ sig_460;
int sig_532 = sig_529 ^ sig_530;
int sig_533 = sig_439 ^ sig_435;
int sig_534 = sig_439 & sig_435;
int sig_535 = sig_533 & sig_465;
int sig_536 = sig_533 ^ sig_465;
int sig_537 = sig_534 | sig_535;
int sig_538 = sig_442 ^ sig_440;
int sig_539 = sig_442 & sig_440;
int sig_540 = sig_538 & sig_470;
int sig_541 = sig_538 ^ sig_470;
int sig_542 = sig_539 | sig_540;
int sig_543 = sig_444 ^ sig_441;
int sig_544 = sig_444 & sig_441;
int sig_545 = sig_543 & sig_475;
int sig_546 = sig_543 ^ sig_475;
int sig_547 = sig_544 | sig_545;
int sig_548 = sig_387 ^ sig_443;
int sig_549 = sig_387 & sig_443;
int sig_550 = sig_548 & sig_480;
int sig_551 = sig_548 ^ sig_480;
int sig_552 = sig_549 | sig_550;
int sig_553 = sig_389 & sig_485;
int sig_554 = sig_389 ^ sig_485;
int sig_555 = sig_391 & sig_490;
int sig_556 = sig_391 ^ sig_490;
int sig_566 = sig_516 & sig_512;
int sig_567 = sig_521 & wa[9];
int sig_568 = sig_521 ^ sig_517;
int sig_569 = sig_567;
int sig_570 = ~(wa[1] & wa[5]);
int sig_571 = sig_568 | sig_569;
int sig_572 = sig_526 ^ sig_522;
int sig_573 = sig_526 & sig_522;
int sig_574 = sig_572 & sig_451;
int sig_575 = sig_572 ^ sig_451;
int sig_576 = sig_573 | sig_574;
int sig_577 = sig_531 ^ sig_527;
int sig_578 = sig_531 & sig_527;
int sig_579 = sig_577 & sig_456;
int sig_580 = sig_577 ^ sig_456;
int sig_581 = sig_578 | sig_579;
int sig_582 = sig_536 ^ sig_532;
int sig_583 = sig_536 & sig_532;
int sig_584 = sig_582 & sig_461;
int sig_585 = sig_582 ^ sig_461;
int sig_586 = sig_583 | sig_584;
int sig_587 = sig_541 ^ sig_537;
int sig_588 = sig_541 & sig_537;
int sig_589 = sig_587 & sig_466;
int sig_590 = sig_587 ^ sig_466;
int sig_591 = sig_588 | sig_589;
int sig_592 = sig_546 ^ sig_542;
int sig_593 = sig_546 & sig_542;
int sig_594 = sig_592 & sig_471;
int sig_595 = sig_592 ^ sig_471;
int sig_596 = sig_593 ^ sig_594;
int sig_597 = sig_551 ^ sig_547;
int sig_598 = sig_551 & sig_547;
int sig_599 = sig_597 & sig_476;
int sig_600 = sig_597 ^ sig_476;
int sig_601 = sig_598 | sig_599;
int sig_602 = sig_554 ^ sig_552;
int sig_603 = sig_554 & sig_552;
int sig_604 = sig_602 & sig_481;
int sig_605 = sig_602 ^ sig_481;
int sig_606 = sig_603 | sig_604;
int sig_607 = sig_556 ^ sig_553;
int sig_608 = sig_556 & sig_553;
int sig_609 = sig_607 & sig_486;
int sig_610 = sig_607 ^ sig_486;
int sig_611 = sig_608 | sig_609;
int sig_612 = sig_495 ^ sig_555;
int sig_613 = sig_495 & sig_555;
int sig_614 = sig_612 & sig_491;
int sig_615 = sig_612 ^ sig_491;
int sig_616 = sig_613 ^ sig_614;
int sig_617 = sig_142 & sig_496;
int sig_618 = sig_142 ^ sig_496;
int sig_636 = sig_570 & sig_566;
int sig_637 = sig_570 & sig_566;
int sig_638 = sig_636 & wa[8];
int sig_640 = sig_637 | sig_638;
int sig_641 = sig_575 ^ sig_571;
int sig_642 = sig_575 & sig_571;
int sig_644 = sig_641 ^ sig_640;
int sig_645 = sig_642;
int sig_646 = sig_580 ^ sig_576;
int sig_647 = sig_580 & sig_576;
int sig_648 = sig_646 & sig_645;
int sig_649 = sig_646 ^ sig_645;
int sig_650 = sig_647 | sig_648;
int sig_651 = sig_585 ^ sig_581;
int sig_652 = sig_585 & sig_581;
int sig_653 = sig_651 & sig_650;
int sig_654 = sig_651 ^ sig_650;
int sig_655 = sig_652 | sig_653;
int sig_656 = sig_590 ^ sig_586;
int sig_657 = sig_590 & sig_586;
int sig_658 = sig_656 & sig_655;
int sig_659 = sig_656 ^ sig_655;
int sig_660 = sig_657 | sig_658;
int sig_661 = sig_595 ^ sig_591;
int sig_662 = sig_595 & sig_591;
int sig_663 = sig_661 & sig_660;
int sig_664 = sig_661 ^ sig_660;
int sig_665 = sig_662 | sig_663;
int sig_666 = sig_600 ^ sig_596;
int sig_667 = sig_600 & sig_596;
int sig_668 = sig_666 & sig_665;
int sig_669 = sig_666 ^ sig_665;
int sig_670 = sig_667 ^ sig_668;
int sig_671 = sig_605 ^ sig_601;
int sig_672 = sig_605 & sig_601;
int sig_673 = sig_671 & sig_670;
int sig_674 = sig_671 ^ sig_670;
int sig_675 = sig_672 ^ sig_673;
int sig_676 = sig_610 ^ sig_606;
int sig_677 = sig_610 & sig_606;
int sig_678 = sig_676 & sig_675;
int sig_679 = sig_676 ^ sig_675;
int sig_680 = sig_677 | sig_678;
int sig_681 = sig_615 ^ sig_611;
int sig_682 = sig_615 & sig_611;
int sig_683 = sig_681 & sig_680;
int sig_684 = sig_681 ^ sig_680;
int sig_685 = sig_682 | sig_683;
int sig_686 = sig_618 ^ sig_616;
int sig_687 = sig_618 & sig_616;
int sig_688 = sig_686 & sig_685;
int sig_689 = sig_686 ^ sig_685;
int sig_690 = sig_687 | sig_688;
int sig_692 = sig_617 ^ sig_690;
y |= (sig_659 & 0x01) << 0; // default output
y |= (sig_269 & 0x01) << 1; // default output
y |= (sig_442 & 0x01) << 2; // default output
y |= (sig_545 & 0x01) << 3; // default output
y |= (sig_489 & 0x01) << 4; // default output
y |= (sig_97 & 0x01) << 5; // default output
y |= (sig_254 & 0x01) << 6; // default output
y |= (sig_125 & 0x01) << 7; // default output
y |= (sig_372 & 0x01) << 8; // default output
y |= (sig_226 & 0x01) << 9; // default output
y |= (sig_429 & 0x01) << 10; // default output
y |= (sig_644 & 0x01) << 11; // default output
y |= (sig_649 & 0x01) << 12; // default output
y |= (sig_654 & 0x01) << 13; // default output
y |= (sig_659 & 0x01) << 14; // default output
y |= (sig_664 & 0x01) << 15; // default output
y |= (sig_669 & 0x01) << 16; // default output
y |= (sig_674 & 0x01) << 17; // default output
y |= (sig_679 & 0x01) << 18; // default output
y |= (sig_684 & 0x01) << 19; // default output
y |= (sig_689 & 0x01) << 20; // default output
y |= (sig_692 & 0x01) << 21; // default output
return y;
}