-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsort.c
16934 lines (16887 loc) · 543 KB
/
sort.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
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#include<stdint.h>
#include<stdbool.h>
static void si_f5_parity_merge_0_i32_2(int32_t* v0_dst, int32_t* v1_src, uint64_t v2_left, uint64_t v3_n);
static void si_f7_glide_sort_0_i32_256_flux(int32_t* v0_x, uint64_t v1_n, void* v2_aux, uint64_t v3_aux_bytes);
static void si_f8_flux_sort_0_i32(int32_t* v0_x, uint64_t v1_n, void* v2_aux, uint64_t v3_aux_bytes);
static void si_f9_pisort_0_i32(int32_t* v0_dst, int32_t* v1_src, uint64_t v2_n, int32_t* v3_aux);
static void si_f10_parity_merge_0_i32_1(int32_t* v0_dst, int32_t* v1_src, uint64_t v2_left, uint64_t v3_n);
static void si_f11_flux_loop_0_i32(int32_t* v0_src, int32_t* v1_dst, int32_t* v2_aux, uint64_t v3_n, uint64_t v4_aux_bytes, int32_t v5_min, uint8_t v6_rh_state);
static void si_f12_radpack32_0(uint32_t* v0_dst, uint32_t* v1_src, uint32_t v2_n, void* v3_aux, uint32_t v4_min);
static uint64_t si_f13_locate_median_3_i32_u64(int32_t* v0_src, uint64_t v1_i0, uint64_t v2_i1, uint64_t v3_i2);
static uint64_t si_f14_locate_median_5_i32_u64(int32_t* v0_src, uint64_t v1_i0, uint64_t v2_i1, uint64_t v3_i2, uint64_t v4_i3, uint64_t v5_i4);
static void si_f15_triple_merge_0_i32(int32_t* v0_x, uint64_t v1_l, uint64_t v2_m, uint64_t v3_r, int32_t* v4_aux);
static void si_f17_glide_sort_0_u64_256_flux(uint64_t* v0_x, uint64_t v1_n, void* v2_aux, uint64_t v3_aux_bytes);
static void si_f18_flux_sort_0_u64(uint64_t* v0_x, uint64_t v1_n, void* v2_aux, uint64_t v3_aux_bytes);
static void si_f19_pisort_0_u64(uint64_t* v0_dst, uint64_t* v1_src, uint64_t v2_n, uint64_t* v3_aux);
static void si_f20_parity_merge_0_u64_1(uint64_t* v0_dst, uint64_t* v1_src, uint64_t v2_left, uint64_t v3_n);
static void si_f21_flux_loop_0_u64(uint64_t* v0_src, uint64_t* v1_dst, uint64_t* v2_aux, uint64_t v3_n, uint64_t v4_aux_bytes, uint64_t v5_min, uint8_t v6_rh_state);
static uint64_t si_f22_locate_median_3_u64_u64(uint64_t* v0_src, uint64_t v1_i0, uint64_t v2_i1, uint64_t v3_i2);
static uint64_t si_f23_locate_median_5_u64_u64(uint64_t* v0_src, uint64_t v1_i0, uint64_t v2_i1, uint64_t v3_i2, uint64_t v4_i3, uint64_t v5_i4);
static void si_f24_parity_merge_0_u64_2(uint64_t* v0_dst, uint64_t* v1_src, uint64_t v2_left, uint64_t v3_n);
static void si_f25_triple_merge_0_u64(uint64_t* v0_x, uint64_t v1_l, uint64_t v2_m, uint64_t v3_r, uint64_t* v4_aux);
static void si_f27_glide_sort_0_f64_256_flux(double* v0_x, uint64_t v1_n, void* v2_aux, uint64_t v3_aux_bytes);
static void si_f28_flux_sort_0_f64(double* v0_x, uint64_t v1_n, void* v2_aux, uint64_t v3_aux_bytes);
static void si_f29_pisort_0_f64(double* v0_dst, double* v1_src, uint64_t v2_n, double* v3_aux);
static void si_f30_parity_merge_0_f64_0(double* v0_dst, double* v1_src, uint64_t v2_left, uint64_t v3_n);
static void si_f31_parity_merge_0_f64_1(double* v0_dst, double* v1_src, uint64_t v2_left, uint64_t v3_n);
static void si_f32_flux_loop_0_f64(double* v0_src, double* v1_dst, double* v2_aux, uint64_t v3_n, uint64_t v4_aux_bytes, double v5_min, uint8_t v6_rh_state);
static uint64_t si_f33_locate_median_3_f64_u64(double* v0_src, uint64_t v1_i0, uint64_t v2_i1, uint64_t v3_i2);
static uint64_t si_f34_locate_median_5_f64_u64(double* v0_src, uint64_t v1_i0, uint64_t v2_i1, uint64_t v3_i2, uint64_t v4_i3, uint64_t v5_i4);
static void si_f35_triple_merge_0_f64(double* v0_x, uint64_t v1_l, uint64_t v2_m, uint64_t v3_r, double* v4_aux);
static void si_f36_parity_merge_0_f64_2(double* v0_dst, double* v1_src, uint64_t v2_left, uint64_t v3_n);
static void si_f0_sort8_0_i8(int8_t* v0_x, uint64_t v1_n, void* v2_aux) {
bool v3; v3 = v1_n < ((uint64_t)16ull);
if (!(v3)) goto l0;
bool v4; v4 = v1_n < ((uint64_t)4ull);
if (!(v4)) goto l1;
bool v5; v5 = v1_n > ((uint64_t)1ull);
if (!(v5)) goto l2;
int8_t* v6; v6 = v0_x + ((int64_t)1ll);
int8_t v7; v7 = v0_x[0];
int8_t v8; v8 = v6[0];
bool v9_c; v9_c = v7 > v8;
bool v10; v10 = !(v9_c);
int8_t v11_t; v11_t = v0_x[v10];
int8_t v12; v12 = v0_x[v9_c];
v0_x[0] = v12;
v0_x[1] = v11_t;
bool v15; v15 = v1_n > ((uint64_t)2ull);
if (!(v15)) goto l3;
int8_t* v16; v16 = v0_x + ((int64_t)1ll);
int8_t* v17; v17 = v16 + ((int64_t)1ll);
int8_t v18; v18 = v16[0];
int8_t v19; v19 = v17[0];
bool v20_c; v20_c = v18 > v19;
bool v21; v21 = !(v20_c);
int8_t v22_t; v22_t = v16[v21];
int8_t v23; v23 = v16[v20_c];
v16[0] = v23;
v16[1] = v22_t;
int8_t* v26; v26 = v0_x + ((int64_t)1ll);
int8_t v27; v27 = v0_x[0];
int8_t v28; v28 = v26[0];
bool v29_c; v29_c = v27 > v28;
bool v30; v30 = !(v29_c);
int8_t v31_t; v31_t = v0_x[v30];
int8_t v32; v32 = v0_x[v29_c];
v0_x[0] = v32;
v0_x[1] = v31_t;
l3:;
goto l4;
l2:;
l4:;
goto l5;
l1:;
bool v35; v35 = v1_n < ((uint64_t)8ull);
if (!(v35)) goto l6;
int8_t v36_a; v36_a = v0_x[0];
int8_t v37_b; v37_b = v0_x[2];
int8_t v38; v38 = v36_a ^ v37_b;
bool v39; v39 = v36_a > v37_b;
int8_t v40; v40 = (int8_t)v39;
int8_t v41; v41 = -(v40);
int8_t v42_x; v42_x = v38 & v41;
int8_t v43; v43 = v42_x ^ v36_a;
v0_x[0] = v43;
int8_t v45; v45 = v42_x ^ v37_b;
v0_x[2] = v45;
int8_t v47_a; v47_a = v0_x[1];
int8_t v48_b; v48_b = v0_x[3];
int8_t v49; v49 = v47_a ^ v48_b;
bool v50; v50 = v47_a > v48_b;
int8_t v51; v51 = (int8_t)v50;
int8_t v52; v52 = -(v51);
int8_t v53_x; v53_x = v49 & v52;
int8_t v54; v54 = v53_x ^ v47_a;
v0_x[1] = v54;
int8_t v56; v56 = v53_x ^ v48_b;
v0_x[3] = v56;
int8_t v58_a; v58_a = v0_x[0];
int8_t v59_b; v59_b = v0_x[1];
int8_t v60; v60 = v58_a ^ v59_b;
bool v61; v61 = v58_a > v59_b;
int8_t v62; v62 = (int8_t)v61;
int8_t v63; v63 = -(v62);
int8_t v64_x; v64_x = v60 & v63;
int8_t v65; v65 = v64_x ^ v58_a;
v0_x[0] = v65;
int8_t v67; v67 = v64_x ^ v59_b;
v0_x[1] = v67;
int8_t v69_a; v69_a = v0_x[2];
int8_t v70_b; v70_b = v0_x[3];
int8_t v71; v71 = v69_a ^ v70_b;
bool v72; v72 = v69_a > v70_b;
int8_t v73; v73 = (int8_t)v72;
int8_t v74; v74 = -(v73);
int8_t v75_x; v75_x = v71 & v74;
int8_t v76; v76 = v75_x ^ v69_a;
v0_x[2] = v76;
int8_t v78; v78 = v75_x ^ v70_b;
v0_x[3] = v78;
int8_t v80_a; v80_a = v0_x[1];
int8_t v81_b; v81_b = v0_x[2];
int8_t v82; v82 = v80_a ^ v81_b;
bool v83; v83 = v80_a > v81_b;
int8_t v84; v84 = (int8_t)v83;
int8_t v85; v85 = -(v84);
int8_t v86_x; v86_x = v82 & v85;
int8_t v87; v87 = v86_x ^ v80_a;
v0_x[1] = v87;
int8_t v89; v89 = v86_x ^ v81_b;
v0_x[2] = v89;
uint64_t v91_i; v91_i = ((uint64_t)4ull);
l7:;
bool v92; v92 = v91_i < v1_n;
if (!(v92)) goto l8;
int8_t* v93_end; v93_end = v0_x + v91_i;
int8_t v94; v94 = v0_x[v91_i];
int8_t* v95_prev; v95_prev = v93_end - ((int64_t)1ll);
int8_t v96; v96 = v95_prev[0];
bool v97; v97 = v96 > v94;
if (!(v97)) goto l9;
int8_t v98; v98 = v0_x[0];
bool v99; v99 = v98 > v94;
if (!(v99)) goto l10;
uint64_t v100_top; v100_top = v91_i;
l11:;
int8_t v101; v101 = v95_prev[0];
v93_end[0] = v101;
v93_end = v93_end - ((int64_t)1ll);
v95_prev = v95_prev - ((int64_t)1ll);
v100_top = v100_top - ((uint64_t)1ull);
bool v103; v103 = v100_top != ((uint64_t)0ull);
if (v103) goto l11;
v93_end[0] = v94;
goto l12;
l10:;
l13:;
int8_t v105; v105 = v95_prev[0];
v93_end[0] = v105;
v93_end = v93_end - ((int64_t)1ll);
v95_prev = v95_prev - ((int64_t)1ll);
int8_t v107; v107 = v95_prev[0];
bool v108; v108 = v107 > v94;
if (v108) goto l13;
v93_end[0] = v94;
l12:;
l9:;
v91_i = v91_i + ((uint64_t)1ull);
goto l7;
l8:;
goto l14;
l6:;
int8_t v110_a; v110_a = v0_x[0];
int8_t v111_b; v111_b = v0_x[2];
int8_t v112; v112 = v110_a ^ v111_b;
bool v113; v113 = v110_a > v111_b;
int8_t v114; v114 = (int8_t)v113;
int8_t v115; v115 = -(v114);
int8_t v116_x; v116_x = v112 & v115;
int8_t v117; v117 = v116_x ^ v110_a;
v0_x[0] = v117;
int8_t v119; v119 = v116_x ^ v111_b;
v0_x[2] = v119;
int8_t v121_a; v121_a = v0_x[1];
int8_t v122_b; v122_b = v0_x[3];
int8_t v123; v123 = v121_a ^ v122_b;
bool v124; v124 = v121_a > v122_b;
int8_t v125; v125 = (int8_t)v124;
int8_t v126; v126 = -(v125);
int8_t v127_x; v127_x = v123 & v126;
int8_t v128; v128 = v127_x ^ v121_a;
v0_x[1] = v128;
int8_t v130; v130 = v127_x ^ v122_b;
v0_x[3] = v130;
int8_t v132_a; v132_a = v0_x[4];
int8_t v133_b; v133_b = v0_x[6];
int8_t v134; v134 = v132_a ^ v133_b;
bool v135; v135 = v132_a > v133_b;
int8_t v136; v136 = (int8_t)v135;
int8_t v137; v137 = -(v136);
int8_t v138_x; v138_x = v134 & v137;
int8_t v139; v139 = v138_x ^ v132_a;
v0_x[4] = v139;
int8_t v141; v141 = v138_x ^ v133_b;
v0_x[6] = v141;
int8_t v143_a; v143_a = v0_x[5];
int8_t v144_b; v144_b = v0_x[7];
int8_t v145; v145 = v143_a ^ v144_b;
bool v146; v146 = v143_a > v144_b;
int8_t v147; v147 = (int8_t)v146;
int8_t v148; v148 = -(v147);
int8_t v149_x; v149_x = v145 & v148;
int8_t v150; v150 = v149_x ^ v143_a;
v0_x[5] = v150;
int8_t v152; v152 = v149_x ^ v144_b;
v0_x[7] = v152;
int8_t v154_a; v154_a = v0_x[0];
int8_t v155_b; v155_b = v0_x[4];
int8_t v156; v156 = v154_a ^ v155_b;
bool v157; v157 = v154_a > v155_b;
int8_t v158; v158 = (int8_t)v157;
int8_t v159; v159 = -(v158);
int8_t v160_x; v160_x = v156 & v159;
int8_t v161; v161 = v160_x ^ v154_a;
v0_x[0] = v161;
int8_t v163; v163 = v160_x ^ v155_b;
v0_x[4] = v163;
int8_t v165_a; v165_a = v0_x[1];
int8_t v166_b; v166_b = v0_x[5];
int8_t v167; v167 = v165_a ^ v166_b;
bool v168; v168 = v165_a > v166_b;
int8_t v169; v169 = (int8_t)v168;
int8_t v170; v170 = -(v169);
int8_t v171_x; v171_x = v167 & v170;
int8_t v172; v172 = v171_x ^ v165_a;
v0_x[1] = v172;
int8_t v174; v174 = v171_x ^ v166_b;
v0_x[5] = v174;
int8_t v176_a; v176_a = v0_x[2];
int8_t v177_b; v177_b = v0_x[6];
int8_t v178; v178 = v176_a ^ v177_b;
bool v179; v179 = v176_a > v177_b;
int8_t v180; v180 = (int8_t)v179;
int8_t v181; v181 = -(v180);
int8_t v182_x; v182_x = v178 & v181;
int8_t v183; v183 = v182_x ^ v176_a;
v0_x[2] = v183;
int8_t v185; v185 = v182_x ^ v177_b;
v0_x[6] = v185;
int8_t v187_a; v187_a = v0_x[3];
int8_t v188_b; v188_b = v0_x[7];
int8_t v189; v189 = v187_a ^ v188_b;
bool v190; v190 = v187_a > v188_b;
int8_t v191; v191 = (int8_t)v190;
int8_t v192; v192 = -(v191);
int8_t v193_x; v193_x = v189 & v192;
int8_t v194; v194 = v193_x ^ v187_a;
v0_x[3] = v194;
int8_t v196; v196 = v193_x ^ v188_b;
v0_x[7] = v196;
int8_t v198_a; v198_a = v0_x[0];
int8_t v199_b; v199_b = v0_x[1];
int8_t v200; v200 = v198_a ^ v199_b;
bool v201; v201 = v198_a > v199_b;
int8_t v202; v202 = (int8_t)v201;
int8_t v203; v203 = -(v202);
int8_t v204_x; v204_x = v200 & v203;
int8_t v205; v205 = v204_x ^ v198_a;
v0_x[0] = v205;
int8_t v207; v207 = v204_x ^ v199_b;
v0_x[1] = v207;
int8_t v209_a; v209_a = v0_x[2];
int8_t v210_b; v210_b = v0_x[3];
int8_t v211; v211 = v209_a ^ v210_b;
bool v212; v212 = v209_a > v210_b;
int8_t v213; v213 = (int8_t)v212;
int8_t v214; v214 = -(v213);
int8_t v215_x; v215_x = v211 & v214;
int8_t v216; v216 = v215_x ^ v209_a;
v0_x[2] = v216;
int8_t v218; v218 = v215_x ^ v210_b;
v0_x[3] = v218;
int8_t v220_a; v220_a = v0_x[4];
int8_t v221_b; v221_b = v0_x[5];
int8_t v222; v222 = v220_a ^ v221_b;
bool v223; v223 = v220_a > v221_b;
int8_t v224; v224 = (int8_t)v223;
int8_t v225; v225 = -(v224);
int8_t v226_x; v226_x = v222 & v225;
int8_t v227; v227 = v226_x ^ v220_a;
v0_x[4] = v227;
int8_t v229; v229 = v226_x ^ v221_b;
v0_x[5] = v229;
int8_t v231_a; v231_a = v0_x[6];
int8_t v232_b; v232_b = v0_x[7];
int8_t v233; v233 = v231_a ^ v232_b;
bool v234; v234 = v231_a > v232_b;
int8_t v235; v235 = (int8_t)v234;
int8_t v236; v236 = -(v235);
int8_t v237_x; v237_x = v233 & v236;
int8_t v238; v238 = v237_x ^ v231_a;
v0_x[6] = v238;
int8_t v240; v240 = v237_x ^ v232_b;
v0_x[7] = v240;
int8_t v242_a; v242_a = v0_x[2];
int8_t v243_b; v243_b = v0_x[4];
int8_t v244; v244 = v242_a ^ v243_b;
bool v245; v245 = v242_a > v243_b;
int8_t v246; v246 = (int8_t)v245;
int8_t v247; v247 = -(v246);
int8_t v248_x; v248_x = v244 & v247;
int8_t v249; v249 = v248_x ^ v242_a;
v0_x[2] = v249;
int8_t v251; v251 = v248_x ^ v243_b;
v0_x[4] = v251;
int8_t v253_a; v253_a = v0_x[3];
int8_t v254_b; v254_b = v0_x[5];
int8_t v255; v255 = v253_a ^ v254_b;
bool v256; v256 = v253_a > v254_b;
int8_t v257; v257 = (int8_t)v256;
int8_t v258; v258 = -(v257);
int8_t v259_x; v259_x = v255 & v258;
int8_t v260; v260 = v259_x ^ v253_a;
v0_x[3] = v260;
int8_t v262; v262 = v259_x ^ v254_b;
v0_x[5] = v262;
int8_t v264_a; v264_a = v0_x[1];
int8_t v265_b; v265_b = v0_x[4];
int8_t v266; v266 = v264_a ^ v265_b;
bool v267; v267 = v264_a > v265_b;
int8_t v268; v268 = (int8_t)v267;
int8_t v269; v269 = -(v268);
int8_t v270_x; v270_x = v266 & v269;
int8_t v271; v271 = v270_x ^ v264_a;
v0_x[1] = v271;
int8_t v273; v273 = v270_x ^ v265_b;
v0_x[4] = v273;
int8_t v275_a; v275_a = v0_x[3];
int8_t v276_b; v276_b = v0_x[6];
int8_t v277; v277 = v275_a ^ v276_b;
bool v278; v278 = v275_a > v276_b;
int8_t v279; v279 = (int8_t)v278;
int8_t v280; v280 = -(v279);
int8_t v281_x; v281_x = v277 & v280;
int8_t v282; v282 = v281_x ^ v275_a;
v0_x[3] = v282;
int8_t v284; v284 = v281_x ^ v276_b;
v0_x[6] = v284;
int8_t v286_a; v286_a = v0_x[1];
int8_t v287_b; v287_b = v0_x[2];
int8_t v288; v288 = v286_a ^ v287_b;
bool v289; v289 = v286_a > v287_b;
int8_t v290; v290 = (int8_t)v289;
int8_t v291; v291 = -(v290);
int8_t v292_x; v292_x = v288 & v291;
int8_t v293; v293 = v292_x ^ v286_a;
v0_x[1] = v293;
int8_t v295; v295 = v292_x ^ v287_b;
v0_x[2] = v295;
int8_t v297_a; v297_a = v0_x[3];
int8_t v298_b; v298_b = v0_x[4];
int8_t v299; v299 = v297_a ^ v298_b;
bool v300; v300 = v297_a > v298_b;
int8_t v301; v301 = (int8_t)v300;
int8_t v302; v302 = -(v301);
int8_t v303_x; v303_x = v299 & v302;
int8_t v304; v304 = v303_x ^ v297_a;
v0_x[3] = v304;
int8_t v306; v306 = v303_x ^ v298_b;
v0_x[4] = v306;
int8_t v308_a; v308_a = v0_x[5];
int8_t v309_b; v309_b = v0_x[6];
int8_t v310; v310 = v308_a ^ v309_b;
bool v311; v311 = v308_a > v309_b;
int8_t v312; v312 = (int8_t)v311;
int8_t v313; v313 = -(v312);
int8_t v314_x; v314_x = v310 & v313;
int8_t v315; v315 = v314_x ^ v308_a;
v0_x[5] = v315;
int8_t v317; v317 = v314_x ^ v309_b;
v0_x[6] = v317;
uint64_t v319_i; v319_i = ((uint64_t)8ull);
l15:;
bool v320; v320 = v319_i < v1_n;
if (!(v320)) goto l16;
int8_t* v321_end; v321_end = v0_x + v319_i;
int8_t v322; v322 = v0_x[v319_i];
int8_t* v323_prev; v323_prev = v321_end - ((int64_t)1ll);
int8_t v324; v324 = v323_prev[0];
bool v325; v325 = v324 > v322;
if (!(v325)) goto l17;
int8_t v326; v326 = v0_x[0];
bool v327; v327 = v326 > v322;
if (!(v327)) goto l18;
uint64_t v328_top; v328_top = v319_i;
l19:;
int8_t v329; v329 = v323_prev[0];
v321_end[0] = v329;
v321_end = v321_end - ((int64_t)1ll);
v323_prev = v323_prev - ((int64_t)1ll);
v328_top = v328_top - ((uint64_t)1ull);
bool v331; v331 = v328_top != ((uint64_t)0ull);
if (v331) goto l19;
v321_end[0] = v322;
goto l20;
l18:;
l21:;
int8_t v333; v333 = v323_prev[0];
v321_end[0] = v333;
v321_end = v321_end - ((int64_t)1ll);
v323_prev = v323_prev - ((int64_t)1ll);
int8_t v335; v335 = v323_prev[0];
bool v336; v336 = v335 > v322;
if (v336) goto l21;
v321_end[0] = v322;
l20:;
l17:;
v319_i = v319_i + ((uint64_t)1ull);
goto l15;
l16:;
l14:;
l5:;
goto l22;
l0:;
bool v338; v338 = v1_n <= ((uint64_t)256ull);
if (!(v338)) goto l23;
int8_t* v339; v339 = (int8_t*)v2_aux;
uint8_t* v340; v340 = (uint8_t*)v2_aux;
uint8_t* v341; v341 = v340 + v1_n;
uint64_t v342_i; v342_i = ((uint64_t)0ull);
l24:;
bool v343; v343 = v342_i < ((uint64_t)256ull);
if (!(v343)) goto l25;
uint8_t v344_a; v344_a = v341[v342_i];
v344_a = ((uint8_t)0ull);
v341[v342_i] = v344_a;
v342_i = v342_i + ((uint64_t)1ull);
goto l24;
l25:;
uint8_t* v346; v346 = v341 + ((int64_t)128ll);
uint8_t* v347; v347 = v346 + ((int64_t)1ll);
uint64_t v348_i; v348_i = ((uint64_t)0ull);
l26:;
bool v349; v349 = v348_i < v1_n;
if (!(v349)) goto l27;
int8_t v350_x; v350_x = v0_x[v348_i];
int8_t v351; v351 = v350_x >> ((int8_t)0ll);
int8_t v352; v352 = (v351);
int64_t v353; v353 = (int64_t)v352;
uint8_t* v354; v354 = v347 + v353;
uint8_t v355; v355 = v354[0];
uint8_t v356; v356 = v355 + ((uint8_t)1ull);
v354[0] = v356;
v348_i = v348_i + ((uint64_t)1ull);
goto l26;
l27:;
uint64_t v358_s; v358_s = (0);
uint64_t v359_nw; v359_nw = ((uint64_t)32ull);
uint64_t* v360; v360 = (uint64_t*)v341;
uint64_t v361_i; v361_i = ((uint64_t)0ull);
l28:;
bool v362; v362 = v361_i < v359_nw;
if (!(v362)) goto l29;
uint64_t v363_xw; v363_xw = v360[v361_i];
v358_s = v358_s + v363_xw;
uint64_t v364; v364 = v358_s << ((uint64_t)8ull);
v358_s = v358_s + v364;
uint64_t v365; v365 = v358_s << ((uint64_t)16ull);
v358_s = v358_s + v365;
uint64_t v366; v366 = v358_s << ((uint64_t)32ull);
v358_s = v358_s + v366;
v363_xw = v358_s;
v358_s = v358_s >> ((uint64_t)56ull);
v360[v361_i] = v363_xw;
v361_i = v361_i + ((uint64_t)1ull);
goto l28;
l29:;
uint64_t v368; v368 = ((uint64_t)8ull) * v359_nw;
uint64_t v369_i; v369_i = ((uint64_t)0ull);
l30:;
bool v370; v370 = v369_i < v1_n;
if (!(v370)) goto l31;
int8_t v371_src; v371_src = v0_x[v369_i];
int8_t v372; v372 = v371_src >> ((int8_t)0ll);
int8_t v373; v373 = (v372);
uint8_t v374_c; v374_c = v346[v373];
v339[v374_c] = v371_src;
uint8_t v376; v376 = v374_c + ((uint8_t)1ull);
v346[v373] = v376;
v369_i = v369_i + ((uint64_t)1ull);
goto l30;
l31:;
uint64_t v378_i; v378_i = ((uint64_t)0ull);
l32:;
bool v379; v379 = v378_i < v1_n;
if (!(v379)) goto l33;
int8_t v380_a; v380_a = v0_x[v378_i];
int8_t v381_b; v381_b = v339[v378_i];
v380_a = v381_b;
v0_x[v378_i] = v380_a;
v378_i = v378_i + ((uint64_t)1ull);
goto l32;
l33:;
goto l34;
l23:;
uint64_t* v383; v383 = (uint64_t*)v2_aux;
uint64_t v384_i; v384_i = ((uint64_t)0ull);
l35:;
bool v385; v385 = v384_i < ((uint64_t)256ull);
if (!(v385)) goto l36;
uint64_t v386_a; v386_a = v383[v384_i];
v386_a = ((uint64_t)0ull);
v383[v384_i] = v386_a;
v384_i = v384_i + ((uint64_t)1ull);
goto l35;
l36:;
uint64_t v388; v388 = v1_n / ((uint64_t)8ull);
bool v389; v389 = ((uint64_t)256ull) < v388;
if (!(v389)) goto l37;
int64_t v390; v390 = (int64_t)((int8_t)-128ll);
uint64_t* v391_c; v391_c = v383 - v390;
uint64_t v392_i; v392_i = ((uint64_t)0ull);
l38:;
bool v393; v393 = v392_i < v1_n;
if (!(v393)) goto l39;
int8_t v394_val; v394_val = v0_x[v392_i];
int64_t v395; v395 = (int64_t)v394_val;
uint64_t* v396; v396 = v391_c + v395;
uint64_t v397; v397 = v396[0];
uint64_t v398; v398 = v397 + ((uint64_t)1ull);
v396[0] = v398;
v392_i = v392_i + ((uint64_t)1ull);
goto l38;
l39:;
int8_t* v400_dst; v400_dst = v0_x;
int8_t v401_v; v401_v = ((int8_t)-128ll);
uint64_t v402_i; v402_i = ((uint64_t)0ull);
l40:;
bool v403; v403 = v402_i < ((uint64_t)256ull);
if (!(v403)) goto l41;
uint64_t v404_count; v404_count = v383[v402_i];
uint64_t v405_i; v405_i = ((uint64_t)0ull);
l42:;
bool v406; v406 = v405_i < v404_count;
if (!(v406)) goto l43;
int8_t v407_a; v407_a = v400_dst[v405_i];
v407_a = v401_v;
v400_dst[v405_i] = v407_a;
v405_i = v405_i + ((uint64_t)1ull);
goto l42;
l43:;
v400_dst = v400_dst + v404_count;
v401_v = v401_v + ((int8_t)1ll);
v402_i = v402_i + ((uint64_t)1ull);
goto l40;
l41:;
goto l44;
l37:;
int64_t v409; v409 = (int64_t)((int8_t)-128ll);
uint64_t* v410_c; v410_c = v383 - v409;
uint64_t v411_i; v411_i = ((uint64_t)0ull);
l45:;
bool v412; v412 = v411_i < v1_n;
if (!(v412)) goto l46;
int8_t v413_val; v413_val = v0_x[v411_i];
int64_t v414; v414 = (int64_t)v413_val;
uint64_t* v415; v415 = v410_c + v414;
uint64_t v416; v416 = v415[0];
uint64_t v417; v417 = v416 + ((uint64_t)1ull);
v415[0] = v417;
v413_val = ((int8_t)0ll);
v0_x[v411_i] = v413_val;
v411_i = v411_i + ((uint64_t)1ull);
goto l45;
l46:;
uint64_t v420_j; v420_j = ((uint64_t)0ull);
uint64_t v421_r;
l47:;
v421_r = v383[v420_j];
bool v422; v422 = v421_r == ((uint64_t)0ull);
if (!(v422)) goto l48;
v420_j = v420_j + ((uint64_t)1ull);
goto l47;
l48:;
int8_t v423; v423 = (v420_j);
int8_t v424_x0; v424_x0 = ((int8_t)-128ll) + v423;
l49:;
bool v425; v425 = v421_r < v1_n;
if (!(v425)) goto l50;
int8_t* v426; v426 = v0_x + v421_r;
int8_t v427; v427 = v426[0];
int8_t v428; v428 = v427 + ((int8_t)1ll);
v426[0] = v428;
v420_j = v420_j + ((uint64_t)1ull);
uint64_t v430; v430 = v383[v420_j];
v421_r = v421_r + v430;
goto l49;
l50:;
uint8_t v431; v431 = (uint8_t)v424_x0;
uint64_t v432_sum; v432_sum = (uint64_t)v431;
v432_sum = v432_sum ^ ((uint64_t)128ull);
uint64_t v433_xor; v433_xor = ((uint64_t)128ull);
uint64_t v434; v434 = v433_xor << ((uint64_t)8ull);
v433_xor = v433_xor + v434;
uint64_t v435; v435 = v433_xor << ((uint64_t)16ull);
v433_xor = v433_xor + v435;
uint64_t v436; v436 = v433_xor << ((uint64_t)32ull);
v433_xor = v433_xor + v436;
uint64_t v437_nw; v437_nw = v1_n / ((uint64_t)8ull);
uint64_t* v438; v438 = (uint64_t*)v0_x;
uint64_t v439_i; v439_i = ((uint64_t)0ull);
l51:;
bool v440; v440 = v439_i < v437_nw;
if (!(v440)) goto l52;
uint64_t v441_xw; v441_xw = v438[v439_i];
v432_sum = v432_sum + v441_xw;
uint64_t v442; v442 = v432_sum << ((uint64_t)8ull);
v432_sum = v432_sum + v442;
uint64_t v443; v443 = v432_sum << ((uint64_t)16ull);
v432_sum = v432_sum + v443;
uint64_t v444; v444 = v432_sum << ((uint64_t)32ull);
v432_sum = v432_sum + v444;
v441_xw = v433_xor ^ v432_sum;
v432_sum = v432_sum >> ((uint64_t)56ull);
v438[v439_i] = v441_xw;
v439_i = v439_i + ((uint64_t)1ull);
goto l51;
l52:;
uint64_t v446_lenq; v446_lenq = ((uint64_t)8ull) * v437_nw;
int8_t* v447; v447 = v0_x + v446_lenq;
uint64_t v448; v448 = v1_n - v446_lenq;
uint64_t v449; v449 = v433_xor ^ v432_sum;
int8_t v450_new; v450_new = (v449);
uint64_t v451_i; v451_i = ((uint64_t)0ull);
l53:;
bool v452; v452 = v451_i < v448;
if (!(v452)) goto l54;
int8_t v453_x; v453_x = v447[v451_i];
v450_new = v450_new + v453_x;
v453_x = v450_new;
v447[v451_i] = v453_x;
v451_i = v451_i + ((uint64_t)1ull);
goto l53;
l54:;
l44:;
l34:;
l22:;
}
static void si_f1_sort16_0_i16(int16_t* v0_x, uint64_t v1_n, void* v2_aux) {
bool v3; v3 = v1_n < ((uint64_t)24ull);
if (!(v3)) goto l0;
bool v4; v4 = v1_n < ((uint64_t)4ull);
if (!(v4)) goto l1;
bool v5; v5 = v1_n > ((uint64_t)1ull);
if (!(v5)) goto l2;
int16_t* v6; v6 = v0_x + ((int64_t)1ll);
int16_t v7; v7 = v0_x[0];
int16_t v8; v8 = v6[0];
bool v9_c; v9_c = v7 > v8;
bool v10; v10 = !(v9_c);
int16_t v11_t; v11_t = v0_x[v10];
int16_t v12; v12 = v0_x[v9_c];
v0_x[0] = v12;
v0_x[1] = v11_t;
bool v15; v15 = v1_n > ((uint64_t)2ull);
if (!(v15)) goto l3;
int16_t* v16; v16 = v0_x + ((int64_t)1ll);
int16_t* v17; v17 = v16 + ((int64_t)1ll);
int16_t v18; v18 = v16[0];
int16_t v19; v19 = v17[0];
bool v20_c; v20_c = v18 > v19;
bool v21; v21 = !(v20_c);
int16_t v22_t; v22_t = v16[v21];
int16_t v23; v23 = v16[v20_c];
v16[0] = v23;
v16[1] = v22_t;
int16_t* v26; v26 = v0_x + ((int64_t)1ll);
int16_t v27; v27 = v0_x[0];
int16_t v28; v28 = v26[0];
bool v29_c; v29_c = v27 > v28;
bool v30; v30 = !(v29_c);
int16_t v31_t; v31_t = v0_x[v30];
int16_t v32; v32 = v0_x[v29_c];
v0_x[0] = v32;
v0_x[1] = v31_t;
l3:;
goto l4;
l2:;
l4:;
goto l5;
l1:;
bool v35; v35 = v1_n < ((uint64_t)8ull);
if (!(v35)) goto l6;
int16_t v36_a; v36_a = v0_x[0];
int16_t v37_b; v37_b = v0_x[2];
int16_t v38; v38 = v36_a ^ v37_b;
bool v39; v39 = v36_a > v37_b;
int16_t v40; v40 = (int16_t)v39;
int16_t v41; v41 = -(v40);
int16_t v42_x; v42_x = v38 & v41;
int16_t v43; v43 = v42_x ^ v36_a;
v0_x[0] = v43;
int16_t v45; v45 = v42_x ^ v37_b;
v0_x[2] = v45;
int16_t v47_a; v47_a = v0_x[1];
int16_t v48_b; v48_b = v0_x[3];
int16_t v49; v49 = v47_a ^ v48_b;
bool v50; v50 = v47_a > v48_b;
int16_t v51; v51 = (int16_t)v50;
int16_t v52; v52 = -(v51);
int16_t v53_x; v53_x = v49 & v52;
int16_t v54; v54 = v53_x ^ v47_a;
v0_x[1] = v54;
int16_t v56; v56 = v53_x ^ v48_b;
v0_x[3] = v56;
int16_t v58_a; v58_a = v0_x[0];
int16_t v59_b; v59_b = v0_x[1];
int16_t v60; v60 = v58_a ^ v59_b;
bool v61; v61 = v58_a > v59_b;
int16_t v62; v62 = (int16_t)v61;
int16_t v63; v63 = -(v62);
int16_t v64_x; v64_x = v60 & v63;
int16_t v65; v65 = v64_x ^ v58_a;
v0_x[0] = v65;
int16_t v67; v67 = v64_x ^ v59_b;
v0_x[1] = v67;
int16_t v69_a; v69_a = v0_x[2];
int16_t v70_b; v70_b = v0_x[3];
int16_t v71; v71 = v69_a ^ v70_b;
bool v72; v72 = v69_a > v70_b;
int16_t v73; v73 = (int16_t)v72;
int16_t v74; v74 = -(v73);
int16_t v75_x; v75_x = v71 & v74;
int16_t v76; v76 = v75_x ^ v69_a;
v0_x[2] = v76;
int16_t v78; v78 = v75_x ^ v70_b;
v0_x[3] = v78;
int16_t v80_a; v80_a = v0_x[1];
int16_t v81_b; v81_b = v0_x[2];
int16_t v82; v82 = v80_a ^ v81_b;
bool v83; v83 = v80_a > v81_b;
int16_t v84; v84 = (int16_t)v83;
int16_t v85; v85 = -(v84);
int16_t v86_x; v86_x = v82 & v85;
int16_t v87; v87 = v86_x ^ v80_a;
v0_x[1] = v87;
int16_t v89; v89 = v86_x ^ v81_b;
v0_x[2] = v89;
uint64_t v91_i; v91_i = ((uint64_t)4ull);
l7:;
bool v92; v92 = v91_i < v1_n;
if (!(v92)) goto l8;
int16_t* v93_end; v93_end = v0_x + v91_i;
int16_t v94; v94 = v0_x[v91_i];
int16_t* v95_prev; v95_prev = v93_end - ((int64_t)1ll);
int16_t v96; v96 = v95_prev[0];
bool v97; v97 = v96 > v94;
if (!(v97)) goto l9;
int16_t v98; v98 = v0_x[0];
bool v99; v99 = v98 > v94;
if (!(v99)) goto l10;
uint64_t v100_top; v100_top = v91_i;
l11:;
int16_t v101; v101 = v95_prev[0];
v93_end[0] = v101;
v93_end = v93_end - ((int64_t)1ll);
v95_prev = v95_prev - ((int64_t)1ll);
v100_top = v100_top - ((uint64_t)1ull);
bool v103; v103 = v100_top != ((uint64_t)0ull);
if (v103) goto l11;
v93_end[0] = v94;
goto l12;
l10:;
l13:;
int16_t v105; v105 = v95_prev[0];
v93_end[0] = v105;
v93_end = v93_end - ((int64_t)1ll);
v95_prev = v95_prev - ((int64_t)1ll);
int16_t v107; v107 = v95_prev[0];
bool v108; v108 = v107 > v94;
if (v108) goto l13;
v93_end[0] = v94;
l12:;
l9:;
v91_i = v91_i + ((uint64_t)1ull);
goto l7;
l8:;
goto l14;
l6:;
bool v110; v110 = v1_n < ((uint64_t)16ull);
if (!(v110)) goto l15;
int16_t v111_a; v111_a = v0_x[0];
int16_t v112_b; v112_b = v0_x[2];
int16_t v113; v113 = v111_a ^ v112_b;
bool v114; v114 = v111_a > v112_b;
int16_t v115; v115 = (int16_t)v114;
int16_t v116; v116 = -(v115);
int16_t v117_x; v117_x = v113 & v116;
int16_t v118; v118 = v117_x ^ v111_a;
v0_x[0] = v118;
int16_t v120; v120 = v117_x ^ v112_b;
v0_x[2] = v120;
int16_t v122_a; v122_a = v0_x[1];
int16_t v123_b; v123_b = v0_x[3];
int16_t v124; v124 = v122_a ^ v123_b;
bool v125; v125 = v122_a > v123_b;
int16_t v126; v126 = (int16_t)v125;
int16_t v127; v127 = -(v126);
int16_t v128_x; v128_x = v124 & v127;
int16_t v129; v129 = v128_x ^ v122_a;
v0_x[1] = v129;
int16_t v131; v131 = v128_x ^ v123_b;
v0_x[3] = v131;
int16_t v133_a; v133_a = v0_x[4];
int16_t v134_b; v134_b = v0_x[6];
int16_t v135; v135 = v133_a ^ v134_b;
bool v136; v136 = v133_a > v134_b;
int16_t v137; v137 = (int16_t)v136;
int16_t v138; v138 = -(v137);
int16_t v139_x; v139_x = v135 & v138;
int16_t v140; v140 = v139_x ^ v133_a;
v0_x[4] = v140;
int16_t v142; v142 = v139_x ^ v134_b;
v0_x[6] = v142;
int16_t v144_a; v144_a = v0_x[5];
int16_t v145_b; v145_b = v0_x[7];
int16_t v146; v146 = v144_a ^ v145_b;
bool v147; v147 = v144_a > v145_b;
int16_t v148; v148 = (int16_t)v147;
int16_t v149; v149 = -(v148);
int16_t v150_x; v150_x = v146 & v149;
int16_t v151; v151 = v150_x ^ v144_a;
v0_x[5] = v151;
int16_t v153; v153 = v150_x ^ v145_b;
v0_x[7] = v153;
int16_t v155_a; v155_a = v0_x[0];
int16_t v156_b; v156_b = v0_x[4];
int16_t v157; v157 = v155_a ^ v156_b;
bool v158; v158 = v155_a > v156_b;
int16_t v159; v159 = (int16_t)v158;
int16_t v160; v160 = -(v159);
int16_t v161_x; v161_x = v157 & v160;
int16_t v162; v162 = v161_x ^ v155_a;
v0_x[0] = v162;
int16_t v164; v164 = v161_x ^ v156_b;
v0_x[4] = v164;
int16_t v166_a; v166_a = v0_x[1];
int16_t v167_b; v167_b = v0_x[5];
int16_t v168; v168 = v166_a ^ v167_b;
bool v169; v169 = v166_a > v167_b;
int16_t v170; v170 = (int16_t)v169;
int16_t v171; v171 = -(v170);
int16_t v172_x; v172_x = v168 & v171;
int16_t v173; v173 = v172_x ^ v166_a;
v0_x[1] = v173;
int16_t v175; v175 = v172_x ^ v167_b;
v0_x[5] = v175;
int16_t v177_a; v177_a = v0_x[2];
int16_t v178_b; v178_b = v0_x[6];
int16_t v179; v179 = v177_a ^ v178_b;
bool v180; v180 = v177_a > v178_b;
int16_t v181; v181 = (int16_t)v180;
int16_t v182; v182 = -(v181);
int16_t v183_x; v183_x = v179 & v182;
int16_t v184; v184 = v183_x ^ v177_a;
v0_x[2] = v184;
int16_t v186; v186 = v183_x ^ v178_b;
v0_x[6] = v186;
int16_t v188_a; v188_a = v0_x[3];
int16_t v189_b; v189_b = v0_x[7];
int16_t v190; v190 = v188_a ^ v189_b;
bool v191; v191 = v188_a > v189_b;
int16_t v192; v192 = (int16_t)v191;
int16_t v193; v193 = -(v192);
int16_t v194_x; v194_x = v190 & v193;
int16_t v195; v195 = v194_x ^ v188_a;
v0_x[3] = v195;
int16_t v197; v197 = v194_x ^ v189_b;
v0_x[7] = v197;
int16_t v199_a; v199_a = v0_x[0];
int16_t v200_b; v200_b = v0_x[1];
int16_t v201; v201 = v199_a ^ v200_b;
bool v202; v202 = v199_a > v200_b;
int16_t v203; v203 = (int16_t)v202;
int16_t v204; v204 = -(v203);
int16_t v205_x; v205_x = v201 & v204;
int16_t v206; v206 = v205_x ^ v199_a;
v0_x[0] = v206;
int16_t v208; v208 = v205_x ^ v200_b;
v0_x[1] = v208;
int16_t v210_a; v210_a = v0_x[2];
int16_t v211_b; v211_b = v0_x[3];
int16_t v212; v212 = v210_a ^ v211_b;
bool v213; v213 = v210_a > v211_b;
int16_t v214; v214 = (int16_t)v213;
int16_t v215; v215 = -(v214);
int16_t v216_x; v216_x = v212 & v215;
int16_t v217; v217 = v216_x ^ v210_a;
v0_x[2] = v217;
int16_t v219; v219 = v216_x ^ v211_b;
v0_x[3] = v219;
int16_t v221_a; v221_a = v0_x[4];
int16_t v222_b; v222_b = v0_x[5];
int16_t v223; v223 = v221_a ^ v222_b;
bool v224; v224 = v221_a > v222_b;
int16_t v225; v225 = (int16_t)v224;
int16_t v226; v226 = -(v225);
int16_t v227_x; v227_x = v223 & v226;
int16_t v228; v228 = v227_x ^ v221_a;
v0_x[4] = v228;
int16_t v230; v230 = v227_x ^ v222_b;
v0_x[5] = v230;
int16_t v232_a; v232_a = v0_x[6];
int16_t v233_b; v233_b = v0_x[7];
int16_t v234; v234 = v232_a ^ v233_b;
bool v235; v235 = v232_a > v233_b;
int16_t v236; v236 = (int16_t)v235;
int16_t v237; v237 = -(v236);
int16_t v238_x; v238_x = v234 & v237;
int16_t v239; v239 = v238_x ^ v232_a;
v0_x[6] = v239;
int16_t v241; v241 = v238_x ^ v233_b;
v0_x[7] = v241;
int16_t v243_a; v243_a = v0_x[2];
int16_t v244_b; v244_b = v0_x[4];
int16_t v245; v245 = v243_a ^ v244_b;
bool v246; v246 = v243_a > v244_b;
int16_t v247; v247 = (int16_t)v246;
int16_t v248; v248 = -(v247);
int16_t v249_x; v249_x = v245 & v248;
int16_t v250; v250 = v249_x ^ v243_a;
v0_x[2] = v250;
int16_t v252; v252 = v249_x ^ v244_b;
v0_x[4] = v252;
int16_t v254_a; v254_a = v0_x[3];
int16_t v255_b; v255_b = v0_x[5];
int16_t v256; v256 = v254_a ^ v255_b;
bool v257; v257 = v254_a > v255_b;
int16_t v258; v258 = (int16_t)v257;
int16_t v259; v259 = -(v258);
int16_t v260_x; v260_x = v256 & v259;
int16_t v261; v261 = v260_x ^ v254_a;
v0_x[3] = v261;
int16_t v263; v263 = v260_x ^ v255_b;
v0_x[5] = v263;
int16_t v265_a; v265_a = v0_x[1];
int16_t v266_b; v266_b = v0_x[4];
int16_t v267; v267 = v265_a ^ v266_b;
bool v268; v268 = v265_a > v266_b;
int16_t v269; v269 = (int16_t)v268;
int16_t v270; v270 = -(v269);
int16_t v271_x; v271_x = v267 & v270;
int16_t v272; v272 = v271_x ^ v265_a;
v0_x[1] = v272;
int16_t v274; v274 = v271_x ^ v266_b;
v0_x[4] = v274;
int16_t v276_a; v276_a = v0_x[3];
int16_t v277_b; v277_b = v0_x[6];
int16_t v278; v278 = v276_a ^ v277_b;
bool v279; v279 = v276_a > v277_b;
int16_t v280; v280 = (int16_t)v279;
int16_t v281; v281 = -(v280);
int16_t v282_x; v282_x = v278 & v281;
int16_t v283; v283 = v282_x ^ v276_a;
v0_x[3] = v283;
int16_t v285; v285 = v282_x ^ v277_b;
v0_x[6] = v285;
int16_t v287_a; v287_a = v0_x[1];
int16_t v288_b; v288_b = v0_x[2];
int16_t v289; v289 = v287_a ^ v288_b;
bool v290; v290 = v287_a > v288_b;
int16_t v291; v291 = (int16_t)v290;
int16_t v292; v292 = -(v291);
int16_t v293_x; v293_x = v289 & v292;
int16_t v294; v294 = v293_x ^ v287_a;
v0_x[1] = v294;
int16_t v296; v296 = v293_x ^ v288_b;
v0_x[2] = v296;
int16_t v298_a; v298_a = v0_x[3];
int16_t v299_b; v299_b = v0_x[4];
int16_t v300; v300 = v298_a ^ v299_b;
bool v301; v301 = v298_a > v299_b;
int16_t v302; v302 = (int16_t)v301;
int16_t v303; v303 = -(v302);
int16_t v304_x; v304_x = v300 & v303;
int16_t v305; v305 = v304_x ^ v298_a;
v0_x[3] = v305;
int16_t v307; v307 = v304_x ^ v299_b;
v0_x[4] = v307;
int16_t v309_a; v309_a = v0_x[5];
int16_t v310_b; v310_b = v0_x[6];
int16_t v311; v311 = v309_a ^ v310_b;
bool v312; v312 = v309_a > v310_b;
int16_t v313; v313 = (int16_t)v312;
int16_t v314; v314 = -(v313);
int16_t v315_x; v315_x = v311 & v314;
int16_t v316; v316 = v315_x ^ v309_a;