-
Notifications
You must be signed in to change notification settings - Fork 0
/
test-online_slim.s
4401 lines (4401 loc) · 228 KB
/
test-online_slim.s
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
2 # GNU C++14 (Ubuntu 7.3.0-27ubuntu1~18.04) version 7.3.0 (x86_64-linux-gnu)
3 # compiled by GNU C version 7.3.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl ve
4
5 # GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
6 # options passed: -imultiarch x86_64-linux-gnu -D_GNU_SOURCE test.cc
7 # -march=ivybridge -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a
8 # -mcx16 -msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt -mno-abm
9 # -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-sgx -mno-bmi2 -mno-tbm
10 # -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rtm -mno-hle -mrdrnd
11 # -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave
12 # -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf
13 # -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq
14 # -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi
15 # -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mno-mwaitx -mno-clzero
16 # -mno-pku -mno-rdpid --param l1-cache-size=32
17 # --param l1-cache-line-size=64 --param l2-cache-size=20480
18 # -mtune=ivybridge -masm=att -g -O3 -fverbose-asm -fstack-protector-strong
19 # -Wformat -Wformat-security
20 # options enabled: -fPIC -fPIE -faggressive-loop-optimizations
21 # -falign-labels -fasynchronous-unwind-tables -fauto-inc-dec
22 # -fbranch-count-reg -fcaller-saves -fchkp-check-incomplete-type
23 # -fchkp-check-read -fchkp-check-write -fchkp-instrument-calls
24 # -fchkp-narrow-bounds -fchkp-optimize -fchkp-store-bounds
25 # -fchkp-use-static-bounds -fchkp-use-static-const-bounds
26 # -fchkp-use-wrappers -fcode-hoisting -fcombine-stack-adjustments -fcommon
27 # -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps
28 # -fdefer-pop -fdelete-null-pointer-checks -fdevirtualize
29 # -fdevirtualize-speculatively -fdwarf2-cfi-asm -fearly-inlining
30 # -feliminate-unused-debug-types -fexceptions -fexpensive-optimizations
31 # -fforward-propagate -ffp-int-builtin-inexact -ffunction-cse -fgcse
32 # -fgcse-after-reload -fgcse-lm -fgnu-runtime -fgnu-unique
33 # -fguess-branch-probability -fhoist-adjacent-loads -fident -fif-conversion
34 # -fif-conversion2 -findirect-inlining -finline -finline-atomics
35 # -finline-functions -finline-functions-called-once
36 # -finline-small-functions -fipa-bit-cp -fipa-cp -fipa-cp-clone -fipa-icf
37 # -fipa-icf-functions -fipa-icf-variables -fipa-profile -fipa-pure-const
38 # -fipa-ra -fipa-reference -fipa-sra -fipa-vrp -fira-hoist-pressure
39 # -fira-share-save-slots -fira-share-spill-slots
40 # -fisolate-erroneous-paths-dereference -fivopts -fkeep-static-consts
41 # -fleading-underscore -flifetime-dse -flra-remat -flto-odr-type-merging
42 # -fmath-errno -fmerge-constants -fmerge-debug-strings
43 # -fmove-loop-invariants -fomit-frame-pointer -foptimize-sibling-calls
44 # -foptimize-strlen -fpartial-inlining -fpeel-loops -fpeephole -fpeephole2
45 # -fplt -fpredictive-commoning -fprefetch-loop-arrays -free
46 # -freg-struct-return -freorder-blocks -freorder-functions
47 # -frerun-cse-after-loop -fsched-critical-path-heuristic
48 # -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock
49 # -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec
50 # -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fschedule-fusion
51 # -fschedule-insns2 -fsemantic-interposition -fshow-column -fshrink-wrap
52 # -fshrink-wrap-separate -fsigned-zeros -fsplit-ivs-in-unroller
53 # -fsplit-loops -fsplit-paths -fsplit-wide-types -fssa-backprop
54 # -fssa-phiopt -fstack-protector-strong -fstdarg-opt -fstore-merging
55 # -fstrict-aliasing -fstrict-overflow -fstrict-volatile-bitfields
56 # -fsync-libcalls -fthread-jumps -ftoplevel-reorder -ftrapping-math
57 # -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp -ftree-ch
58 # -ftree-coalesce-vars -ftree-copy-prop -ftree-cselim -ftree-dce
59 # -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre
60 # -ftree-loop-distribute-patterns -ftree-loop-if-convert -ftree-loop-im
61 # -ftree-loop-ivcanon -ftree-loop-optimize -ftree-loop-vectorize
62 # -ftree-parallelize-loops= -ftree-partial-pre -ftree-phiprop -ftree-pre
63 # -ftree-pta -ftree-reassoc -ftree-scev-cprop -ftree-sink
64 # -ftree-slp-vectorize -ftree-slsr -ftree-sra -ftree-switch-conversion
65 # -ftree-tail-merge -ftree-ter -ftree-vrp -funit-at-a-time -funswitch-loops
66 # -funwind-tables -fvar-tracking -fvar-tracking-assignments -fverbose-asm
67 # -fzero-initialized-in-bss -m128bit-long-double -m64 -m80387 -maes
68 # -malign-stringops -mavx -mavx256-split-unaligned-load
69 # -mavx256-split-unaligned-store -mcx16 -mf16c -mfancy-math-387
70 # -mfp-ret-in-387 -mfsgsbase -mfxsr -mglibc -mieee-fp -mlong-double-80
71 # -mmmx -mpclmul -mpopcnt -mpush-args -mrdrnd -mred-zone -msahf -msse
72 # -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3 -mstv
73 # -mtls-direct-seg-refs -mvzeroupper -mxsave -mxsaveopt
74
75 .text
76 .Ltext0:
77 .section .text._ZNKSt5ctypeIcE8do_widenEc,"axG",@progbits,_ZNKSt5ctypeIcE8do_widenEc,comdat
78 .align 2
80 .weak _ZNKSt5ctypeIcE8do_widenEc
82 _ZNKSt5ctypeIcE8do_widenEc:
88 # /usr/include/c++/7/bits/locale_facets.h:1083: { return __c; }
90 0000 89F0 movl %esi, %eax # __c,
91 0002 C3 ret
95 .section .text._ZN11measurement15IteratorCompareI11SortableRefEEbPT_S3_,"axG",@progbits,_ZN11measu
97 .weak _ZN11measurement15IteratorCompareI11SortableRefEEbPT_S3_
99 _ZN11measurement15IteratorCompareI11SortableRefEEbPT_S3_:
1:Measure.h ****
2:Measure.h **** #ifndef MEASURE_H
3:Measure.h **** #define MEASURE_H
4:Measure.h ****
5:Measure.h **** #include <string>
6:Measure.h **** #include <vector>
7:Measure.h ****
8:Measure.h **** #include "Result.h"
9:Measure.h **** #include "ArrayHelpers.h"
10:Measure.h **** #include "Performancing.h"
11:Measure.h **** #include "QuickSort.h"
12:Measure.h **** #include "Quicksort_Copy.h"
13:Measure.h **** #include "Randomisation.generated.h"
14:Measure.h **** #include "StructHelpers.generated.h"
15:Measure.h **** #include "DebugHelper.h"
16:Measure.h ****
17:Measure.h **** namespace measurement
18:Measure.h **** {
19:Measure.h ****
20:Measure.h **** template <typename ValueType>
21:Measure.h **** void Measure(
22:Measure.h **** Performancing* perf,
23:Measure.h **** int numberOfIterations,
24:Measure.h **** size_t arraySize,
25:Measure.h **** int measureIteration,
26:Measure.h **** std::string sorterName,
27:Measure.h **** void(*sortFunc)(ValueType*,size_t))
28:Measure.h **** {
29:Measure.h **** ValueType *arr = (ValueType*) malloc(sizeof(ValueType) * arraySize);
30:Measure.h ****
31:Measure.h **** int numberOfBadSorts = 0;
32:Measure.h **** randomisation::GenerateRandomArray(arr, arraySize);
33:Measure.h **** sortFunc(arr, arraySize);
34:Measure.h **** if (!IsSorted(arr, arraySize))
35:Measure.h **** {
36:Measure.h **** numberOfBadSorts += 1;
37:Measure.h **** }
38:Measure.h ****
39:Measure.h **** uint64_t key_iter = 1;
40:Measure.h **** uint64_t ref_iter = 1;
41:Measure.h **** uint64_t key_value;
42:Measure.h **** uint64_t ref_value;
43:Measure.h **** perf->StartMeasuring();
44:Measure.h **** for (int i = 0; i < numberOfIterations; i += 1)
45:Measure.h **** {
46:Measure.h **** randomisation::GenerateRandomArray(arr, arraySize);
47:Measure.h **** key_iter = 1;
48:Measure.h **** ref_iter = 1;
49:Measure.h **** PutPermutationValues(arr, arraySize, key_value, key_iter, ref_value, ref_iter);
50:Measure.h **** sortFunc(arr, arraySize);
51:Measure.h ****
52:Measure.h **** if (!IsSortedAndPermutation(arr, arraySize, key_iter, key_value, ref_iter, ref_value))
53:Measure.h **** {
54:Measure.h **** numberOfBadSorts += 1;
55:Measure.h **** }
56:Measure.h **** }
57:Measure.h **** perf->StopMeasuring();
58:Measure.h ****
59:Measure.h **** result::WriteResultLine(
60:Measure.h **** sorterName,
61:Measure.h **** perf,
62:Measure.h **** sizeof(ValueType),
63:Measure.h **** arraySize,
64:Measure.h **** measureIteration,
65:Measure.h **** numberOfIterations,
66:Measure.h **** numberOfBadSorts,
67:Measure.h **** true
68:Measure.h **** );
69:Measure.h ****
70:Measure.h **** free(arr);
71:Measure.h **** }
72:Measure.h ****
73:Measure.h **** template <typename ValueType>
74:Measure.h **** void MeasureInRow(
75:Measure.h **** Performancing* perf,
76:Measure.h **** int numberOfArrays,
77:Measure.h **** size_t arraySize,
78:Measure.h **** int measureIteration,
79:Measure.h **** std::string sorterName,
80:Measure.h **** void(*sortFunc)(ValueType*,size_t))
81:Measure.h **** {
82:Measure.h **** ValueType *arr = (ValueType*) malloc(sizeof(ValueType) * numberOfArrays * arraySize);
83:Measure.h **** ValueType *arrEnd = arr + numberOfArrays * arraySize;
84:Measure.h **** ValueType *compare = (ValueType*) malloc(sizeof(ValueType) * numberOfArrays * arraySize);
85:Measure.h **** ValueType *compareEnd = compare + numberOfArrays * arraySize;
86:Measure.h **** ValueType warmupArr[arraySize];
87:Measure.h ****
88:Measure.h **** randomisation::GenerateRandomArray(arr, numberOfArrays * arraySize);
89:Measure.h **** CopyArray(arr, compare, numberOfArrays * arraySize);
90:Measure.h **** randomisation::GenerateRandomArray(warmupArr, arraySize);
91:Measure.h ****
92:Measure.h **** for (ValueType* current = compare; current < compareEnd; current += arraySize)
93:Measure.h **** {
94:Measure.h **** insertionsort::InsertionSort(current, arraySize);
95:Measure.h **** }
96:Measure.h ****
97:Measure.h **** int numberOfBadSorts = 0;
98:Measure.h **** sortFunc(warmupArr, arraySize);
99:Measure.h **** if (!IsSorted(warmupArr, arraySize))
100:Measure.h **** {
101:Measure.h **** numberOfBadSorts += 1;
102:Measure.h **** }
103:Measure.h ****
104:Measure.h **** perf->StartMeasuring();
105:Measure.h **** for (ValueType* current = arr; current < arrEnd; current += arraySize)
106:Measure.h **** {
107:Measure.h **** sortFunc(current, arraySize);
108:Measure.h **** }
109:Measure.h **** perf->StopMeasuring();
110:Measure.h ****
111:Measure.h **** for (int i = 0; i < numberOfArrays; i += 1)
112:Measure.h **** {
113:Measure.h **** if (!IsSameArray(&arr[i * arraySize], &compare[i * arraySize], arraySize))
114:Measure.h **** {
115:Measure.h **** numberOfBadSorts += 1;
116:Measure.h **** }
117:Measure.h **** }
118:Measure.h ****
119:Measure.h **** result::WriteResultLine(
120:Measure.h **** sorterName,
121:Measure.h **** perf,
122:Measure.h **** sizeof(ValueType),
123:Measure.h **** arraySize,
124:Measure.h **** measureIteration,
125:Measure.h **** numberOfArrays,
126:Measure.h **** numberOfBadSorts,
127:Measure.h **** true
128:Measure.h **** );
129:Measure.h ****
130:Measure.h **** free(arr);
131:Measure.h **** free(compare);
132:Measure.h **** }
133:Measure.h ****
134:Measure.h **** template <typename ValueType>
135:Measure.h **** void MeasureSampleSort(
136:Measure.h **** Performancing* perf,
137:Measure.h **** int numberOfIterations,
138:Measure.h **** size_t arraySize,
139:Measure.h **** int measureIteration,
140:Measure.h **** std::string sorterName,
141:Measure.h **** void(*sortFunc)(ValueType*,size_t,size_t,void(*)(ValueType*,size_t), bool(*)(uint64_t&,TValue
142:Measure.h **** void(*baseCaseSortFunc)(ValueType*,size_t))
143:Measure.h **** {
144:Measure.h **** ValueType *arr = (ValueType*) malloc(sizeof(ValueType) * arraySize);
145:Measure.h **** randomisation::GenerateRandomArray(arr, arraySize);
146:Measure.h **** int numberOfBadSorts = 0;
147:Measure.h **** uint64_t key_iter = 1;
148:Measure.h **** uint64_t ref_iter = 1;
149:Measure.h **** uint64_t key_value;
150:Measure.h **** uint64_t ref_value;
151:Measure.h **** PutPermutationValues(arr, arraySize, key_value, key_iter, ref_value, ref_iter);
152:Measure.h **** sortFunc(arr, arraySize, 16, baseCaseSortFunc, &quicksort::templateLess<ValueType>, &GetKey<TV
153:Measure.h **** if (!IsSortedAndPermutation(arr, arraySize, key_iter, key_value, ref_iter, ref_value))
154:Measure.h **** {
155:Measure.h **** numberOfBadSorts += 1;
156:Measure.h **** }
157:Measure.h ****
158:Measure.h **** perf->StartMeasuring();
159:Measure.h **** for (int i = 0; i < numberOfIterations; i += 1)
160:Measure.h **** {
161:Measure.h **** randomisation::GenerateRandomArray(arr, arraySize);
162:Measure.h **** key_iter = 1;
163:Measure.h **** ref_iter = 1;
164:Measure.h **** PutPermutationValues(arr, arraySize, key_value, key_iter, ref_value, ref_iter);
165:Measure.h **** sortFunc(arr, arraySize, 16, baseCaseSortFunc, &quicksort::templateLess<ValueType>, &GetKe
166:Measure.h **** if (!IsSortedAndPermutation(arr, arraySize, key_iter, key_value, ref_iter, ref_value))
167:Measure.h **** {
168:Measure.h **** numberOfBadSorts += 1;
169:Measure.h **** }
170:Measure.h **** }
171:Measure.h **** perf->StopMeasuring();
172:Measure.h ****
173:Measure.h **** result::WriteResultLine(
174:Measure.h **** sorterName,
175:Measure.h **** perf,
176:Measure.h **** sizeof(ValueType),
177:Measure.h **** arraySize,
178:Measure.h **** measureIteration,
179:Measure.h **** numberOfIterations,
180:Measure.h **** numberOfBadSorts,
181:Measure.h **** true
182:Measure.h **** );
183:Measure.h ****
184:Measure.h **** free(arr);
185:Measure.h **** }
186:Measure.h ****
187:Measure.h **** template <typename ValueType>
188:Measure.h **** void BaseCaseSortBlank(ValueType* arr, size_t arraySize) {}
189:Measure.h ****
190:Measure.h **** template <typename ValueType>
191:Measure.h **** bool IteratorCompare(ValueType* left, ValueType* right)
107 # Sortable.generated.h:34: return left.key < right.key;
1:Sortable.generated.h **** //------------------------------------------------------------------------------
2:Sortable.generated.h **** // <auto-generated>
3:Sortable.generated.h **** // This code was auto-generated
4:Sortable.generated.h **** //
5:Sortable.generated.h **** // Changes to this file may cause incorrect behavior and will be lost if
6:Sortable.generated.h **** // the code is regenerated.
7:Sortable.generated.h **** // </auto-generated>
8:Sortable.generated.h **** //------------------------------------------------------------------------------
9:Sortable.generated.h ****
10:Sortable.generated.h ****
11:Sortable.generated.h **** #ifndef SORTABLE_GENERATED_H
12:Sortable.generated.h **** #define SORTABLE_GENERATED_H
13:Sortable.generated.h ****
14:Sortable.generated.h **** #define ArraySize 16
15:Sortable.generated.h **** #include <inttypes.h>
16:Sortable.generated.h **** struct SortableRef
17:Sortable.generated.h **** {
18:Sortable.generated.h **** uint64_t key;
19:Sortable.generated.h **** uint64_t reference;
20:Sortable.generated.h **** friend bool operator>(const SortableRef& left, const SortableRef& right)
21:Sortable.generated.h **** {
22:Sortable.generated.h **** return left.key > right.key;
23:Sortable.generated.h **** }
24:Sortable.generated.h **** friend bool operator>=(const SortableRef& left, const SortableRef& right)
25:Sortable.generated.h **** {
26:Sortable.generated.h **** return left.key >= right.key;
27:Sortable.generated.h **** }
28:Sortable.generated.h **** friend bool operator==(const SortableRef& left, const SortableRef& right)
29:Sortable.generated.h **** {
30:Sortable.generated.h **** return left.key == right.key;
31:Sortable.generated.h **** }
32:Sortable.generated.h **** friend bool operator<(const SortableRef& left, const SortableRef& right)
33:Sortable.generated.h **** {
34:Sortable.generated.h **** return left.key < right.key;
110 0000 488B06 movq (%rsi), %rax # MEM[(long unsigned int *)right_3(D)], tmp95
111 0003 483907 cmpq %rax, (%rdi) # tmp95, MEM[(long unsigned int *)left_2(D)]
112 0006 0F92C0 setb %al #, tmp93
115 # Measure.h:194: }
192:Measure.h **** {
193:Measure.h **** return *left < *right;
194:Measure.h **** }
117 0009 C3 ret
121 .section .text._ZN11measurement13NormalCompareI11SortableRefEEbRT_S3_,"axG",@progbits,_ZN11measure
123 .weak _ZN11measurement13NormalCompareI11SortableRefEEbRT_S3_
125 _ZN11measurement13NormalCompareI11SortableRefEEbRT_S3_:
195:Measure.h ****
196:Measure.h **** template <typename ValueType>
197:Measure.h **** bool NormalCompare(ValueType& left, ValueType& right)
132 # Sortable.generated.h:34: return left.key < right.key;
134 0000 488B06 movq (%rsi), %rax # MEM[(long unsigned int *)right_3(D)], tmp95
135 0003 483907 cmpq %rax, (%rdi) # tmp95, MEM[(long unsigned int *)left_2(D)]
136 0006 0F92C0 setb %al #, tmp93
139 # Measure.h:200: }
198:Measure.h **** {
199:Measure.h **** return left < right;
200:Measure.h **** }
141 0009 C3 ret
145 .text
147 .globl _ZN13randomisation7SetSeedEm
149 _ZN13randomisation7SetSeedEm:
1:Randomisation.h ****
2:Randomisation.h **** #ifndef RANDOMISATION_H
3:Randomisation.h **** #define RANDOMISATION_H
4:Randomisation.h ****
5:Randomisation.h **** #include <stdlib.h>
6:Randomisation.h **** #include <inttypes.h>
7:Randomisation.h **** #include <stdexcept>
8:Randomisation.h ****
9:Randomisation.h **** #include "Sortable.generated.h"
10:Randomisation.h ****
11:Randomisation.h **** namespace randomisation {
12:Randomisation.h ****
13:Randomisation.h **** uint64_t _seed = 1;
14:Randomisation.h ****
15:Randomisation.h **** void SetSeed(uint64_t seed) {
155 # Randomisation.h:16: _seed = seed;
16:Randomisation.h **** _seed = seed;
157 0000 48893D00 movq %rdi, _ZN13randomisation5_seedE(%rip) # seed, _seed
157 000000
158 # Randomisation.h:17: }
17:Randomisation.h **** }
160 0007 C3 ret
164 00000000
165 .globl _ZN13randomisation20GenerateRandomUint64Ev
167 _ZN13randomisation20GenerateRandomUint64Ev:
18:Randomisation.h ****
19:Randomisation.h **** uint64_t GenerateRandomUint64() {
171 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** _seed = _seed * 48271 % 2147483647;
173 0010 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp90
173 0000008F
173 BC0000
174 001b 48BA0500 movabsq $8589934597, %rdx #, tmp93
174 00000200
174 0000
175 0025 4889C8 movq %rcx, %rax # tmp90, tmp101
176 0028 48F7E2 mulq %rdx # tmp93
177 002b 4889C8 movq %rcx, %rax # tmp90, tmp94
178 002e 4829D0 subq %rdx, %rax # tmp92, tmp94
179 0031 48D1E8 shrq %rax # tmp95
180 0034 4801D0 addq %rdx, %rax # tmp92, tmp96
181 0037 48C1E81E shrq $30, %rax #, <retval>
182 003b 4889C2 movq %rax, %rdx # <retval>, tmp98
183 003e 48C1E21F salq $31, %rdx #, tmp98
184 0042 4829C2 subq %rax, %rdx # <retval>, tmp98
185 0045 4829D1 subq %rdx, %rcx # tmp99, tmp90
186 0048 4889C8 movq %rcx, %rax # tmp90, <retval>
187 004b 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # <retval>, _seed
187 000000
188 # Randomisation.h:22: }
21:Randomisation.h **** return _seed;
22:Randomisation.h **** }
190 0052 C3 ret
194 2E0F1F84
194 00000000
194 00
195 .globl _ZN13randomisation19GenerateRandomArrayI11SortableRefEEvPT_m
197 _ZN13randomisation19GenerateRandomArrayI11SortableRefEEvPT_m:
1:Randomisation.generated.h **** //------------------------------------------------------------------------------
2:Randomisation.generated.h **** // <auto-generated>
3:Randomisation.generated.h **** // This code was auto-generated
4:Randomisation.generated.h **** //
5:Randomisation.generated.h **** // Changes to this file may cause incorrect behavior and will be lost if
6:Randomisation.generated.h **** // the code is regenerated.
7:Randomisation.generated.h **** // </auto-generated>
8:Randomisation.generated.h **** //------------------------------------------------------------------------------
9:Randomisation.generated.h ****
10:Randomisation.generated.h **** #ifndef RANDOMISATION_GENERATED_H
11:Randomisation.generated.h **** #define RANDOMISATION_GENERATED_H
12:Randomisation.generated.h ****
13:Randomisation.generated.h **** #include "Randomisation.h"
14:Randomisation.generated.h **** namespace randomisation
15:Randomisation.generated.h **** {
16:Randomisation.generated.h **** template <typename ValueType>
17:Randomisation.generated.h **** void GenerateRandomArray(ValueType* arr, size_t arraySize)
18:Randomisation.generated.h **** {
19:Randomisation.generated.h **** throw std::logic_error("randomisation::GenerateRandomArray => Not implemented for generic type");
20:Randomisation.generated.h **** }
21:Randomisation.generated.h **** template<>
22:Randomisation.generated.h **** void GenerateRandomArray<SortableRef>(SortableRef* arr, size_t arraySize)
23:Randomisation.generated.h **** {
205 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
207 0060 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp120
207 0000008F
207 BC0000
208 006b 49B90500 movabsq $8589934597, %r9 #, tmp123
208 00000200
208 0000
209 0075 4889C8 movq %rcx, %rax # tmp120, tmp148
210 0078 49F7E1 mulq %r9 # tmp123
211 007b 4889C8 movq %rcx, %rax # tmp120, tmp124
212 007e 4829D0 subq %rdx, %rax # tmp122, tmp124
213 0081 48D1E8 shrq %rax # tmp125
214 0084 4801C2 addq %rax, %rdx # tmp125, tmp126
215 0087 48C1EA1E shrq $30, %rdx #, _seed_lsm.374
216 008b 4889D0 movq %rdx, %rax # _seed_lsm.374, tmp128
217 008e 48C1E01F salq $31, %rax #, tmp128
218 0092 4829D0 subq %rdx, %rax # _seed_lsm.374, tmp129
219 0095 4829C1 subq %rax, %rcx # tmp129, tmp120
220 0098 4889CA movq %rcx, %rdx # tmp120, _seed_lsm.374
221 009b 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.374, _seed
221 000000
226 # Randomisation.generated.h:25: for (int i = 0; i < arraySize; i += 1)
24:Randomisation.generated.h **** uint64_t reference = randomisation::GenerateRandomUint64();
25:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
228 00a2 4885F6 testq %rsi, %rsi # arraySize
229 00a5 745A je .L14 #,
230 00a7 48C1E604 salq $4, %rsi #, tmp130
232 00ab 4C8D0437 leaq (%rdi,%rsi), %r8 #, _37
233 00af 4889CE movq %rcx, %rsi # _seed_lsm.374, ivtmp.382
236 0000
237 .L9:
240 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
242 00b8 4869CA8F imulq $48271, %rdx, %rcx #, _seed_lsm.374, tmp131
242 BC0000
245 # Randomisation.generated.h:28: arr[i].reference = reference + i;
26:Randomisation.generated.h **** {
27:Randomisation.generated.h **** arr[i].key = randomisation::GenerateRandomUint64();
28:Randomisation.generated.h **** arr[i].reference = reference + i;
247 00bf 48897708 movq %rsi, 8(%rdi) # ivtmp.382, MEM[base: _31, offset: 8B]
248 00c3 4883C710 addq $16, %rdi #, ivtmp.381
249 00c7 4883C601 addq $1, %rsi #, ivtmp.382
253 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
255 00cb 4889C8 movq %rcx, %rax # tmp131, tmp149
256 00ce 49F7E1 mulq %r9 # tmp133
257 00d1 4889C8 movq %rcx, %rax # tmp131, tmp134
258 00d4 4829D0 subq %rdx, %rax # tmp132, tmp134
259 00d7 48D1E8 shrq %rax # tmp135
260 00da 4801C2 addq %rax, %rdx # tmp135, tmp136
261 00dd 48C1EA1E shrq $30, %rdx #, _seed_lsm.374
262 00e1 4889D0 movq %rdx, %rax # _seed_lsm.374, tmp138
263 00e4 48C1E01F salq $31, %rax #, tmp138
264 00e8 4829D0 subq %rdx, %rax # _seed_lsm.374, tmp139
265 00eb 4829C1 subq %rax, %rcx # tmp139, tmp131
268 # Randomisation.generated.h:27: arr[i].key = randomisation::GenerateRandomUint64();
27:Randomisation.generated.h **** arr[i].reference = reference + i;
270 00ee 48894FF0 movq %rcx, -16(%rdi) # _seed_lsm.374, MEM[base: _31, offset: 0B]
273 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
275 00f2 4889CA movq %rcx, %rdx # tmp131, _seed_lsm.374
278 # Randomisation.generated.h:25: for (int i = 0; i < arraySize; i += 1)
25:Randomisation.generated.h **** {
280 00f5 4939F8 cmpq %rdi, %r8 # ivtmp.381, _37
281 00f8 75BE jne .L9 #,
282 00fa 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.374, _seed
282 000000
283 .L14:
285 # Randomisation.generated.h:30: }
29:Randomisation.generated.h **** }
30:Randomisation.generated.h **** }
287 0101 C3 ret
291 662E0F1F
291 84000000
291 0000
292 .globl _ZN13randomisation19GenerateRandomArrayI17Sortable_JumpXchgEEvPT_m
294 _ZN13randomisation19GenerateRandomArrayI17Sortable_JumpXchgEEvPT_m:
31:Randomisation.generated.h **** template<>
32:Randomisation.generated.h **** void GenerateRandomArray<Sortable_JumpXchg>(Sortable_JumpXchg* arr, size_t arraySize)
33:Randomisation.generated.h **** {
300 # Randomisation.generated.h:34: for (int i = 0; i < arraySize; i += 1)
34:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
302 0110 4885F6 testq %rsi, %rsi # arraySize
303 0113 7455 je .L22 #,
304 0115 4C8D04F7 leaq (%rdi,%rsi,8), %r8 #, _15
307 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
309 0119 48BE0500 movabsq $8589934597, %rsi #, tmp100
309 00000200
309 0000
312 00
313 .L17:
314 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
316 0128 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp97
316 0000008F
316 BC0000
317 0133 4883C708 addq $8, %rdi #, ivtmp.392
318 0137 4889C8 movq %rcx, %rax # tmp97, tmp107
319 013a 48F7E6 mulq %rsi # tmp100
320 013d 4889C8 movq %rcx, %rax # tmp97, tmp101
321 0140 4829D0 subq %rdx, %rax # tmp99, tmp101
322 0143 48D1E8 shrq %rax # tmp102
323 0146 4801C2 addq %rax, %rdx # tmp102, tmp103
324 0149 48C1EA1E shrq $30, %rdx #, _13
325 014d 4889D0 movq %rdx, %rax # _13, tmp105
326 0150 48C1E01F salq $31, %rax #, tmp105
327 0154 4829D0 subq %rdx, %rax # _13, tmp106
328 0157 4829C1 subq %rax, %rcx # tmp106, tmp97
329 015a 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _13, _seed
329 000000
332 # Randomisation.generated.h:36: arr[i].key = randomisation::GenerateRandomUint64();
35:Randomisation.generated.h **** {
36:Randomisation.generated.h **** arr[i].key = randomisation::GenerateRandomUint64();
334 0161 48894FF8 movq %rcx, -8(%rdi) # _13, MEM[base: _22, offset: 0B]
335 # Randomisation.generated.h:34: for (int i = 0; i < arraySize; i += 1)
34:Randomisation.generated.h **** {
337 0165 4939F8 cmpq %rdi, %r8 # ivtmp.392, _15
338 0168 75BE jne .L17 #,
339 .L22:
341 # Randomisation.generated.h:38: }
37:Randomisation.generated.h **** }
38:Randomisation.generated.h **** }
343 016a C3 ret
347 00
348 .globl _ZN13randomisation19GenerateRandomArrayI20SortableRef_JumpXchgEEvPT_m
350 _ZN13randomisation19GenerateRandomArrayI20SortableRef_JumpXchgEEvPT_m:
39:Randomisation.generated.h **** template<>
40:Randomisation.generated.h **** void GenerateRandomArray<SortableRef_JumpXchg>(SortableRef_JumpXchg* arr, size_t arraySize)
41:Randomisation.generated.h **** {
357 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
359 0170 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp98
359 0000008F
359 BC0000
360 017b 49B90500 movabsq $8589934597, %r9 #, tmp101
360 00000200
360 0000
361 0185 4889C8 movq %rcx, %rax # tmp98, tmp126
362 0188 49F7E1 mulq %r9 # tmp101
363 018b 4889C8 movq %rcx, %rax # tmp98, tmp102
364 018e 4829D0 subq %rdx, %rax # tmp100, tmp102
365 0191 48D1E8 shrq %rax # tmp103
366 0194 4801C2 addq %rax, %rdx # tmp103, tmp104
367 0197 48C1EA1E shrq $30, %rdx #, _seed_lsm.394
368 019b 4889D0 movq %rdx, %rax # _seed_lsm.394, tmp106
369 019e 48C1E01F salq $31, %rax #, tmp106
370 01a2 4829D0 subq %rdx, %rax # _seed_lsm.394, tmp107
371 01a5 4829C1 subq %rax, %rcx # tmp107, tmp98
372 01a8 4889CA movq %rcx, %rdx # tmp98, _seed_lsm.394
373 01ab 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.394, _seed
373 000000
378 # Randomisation.generated.h:43: for (int i = 0; i < arraySize; i += 1)
42:Randomisation.generated.h **** uint64_t reference = randomisation::GenerateRandomUint64();
43:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
380 01b2 4885F6 testq %rsi, %rsi # arraySize
381 01b5 745A je .L30 #,
382 01b7 48C1E604 salq $4, %rsi #, tmp108
384 01bb 4C8D0437 leaq (%rdi,%rsi), %r8 #, _37
385 01bf 4889CE movq %rcx, %rsi # _seed_lsm.394, ivtmp.402
388 0000
389 .L25:
392 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
394 01c8 4869CA8F imulq $48271, %rdx, %rcx #, _seed_lsm.394, tmp109
394 BC0000
397 # Randomisation.generated.h:46: arr[i].reference = reference + i;
44:Randomisation.generated.h **** {
45:Randomisation.generated.h **** arr[i].key = randomisation::GenerateRandomUint64();
46:Randomisation.generated.h **** arr[i].reference = reference + i;
399 01cf 48897708 movq %rsi, 8(%rdi) # ivtmp.402, MEM[base: _31, offset: 8B]
400 01d3 4883C710 addq $16, %rdi #, ivtmp.401
401 01d7 4883C601 addq $1, %rsi #, ivtmp.402
405 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
407 01db 4889C8 movq %rcx, %rax # tmp109, tmp127
408 01de 49F7E1 mulq %r9 # tmp111
409 01e1 4889C8 movq %rcx, %rax # tmp109, tmp112
410 01e4 4829D0 subq %rdx, %rax # tmp110, tmp112
411 01e7 48D1E8 shrq %rax # tmp113
412 01ea 4801C2 addq %rax, %rdx # tmp113, tmp114
413 01ed 48C1EA1E shrq $30, %rdx #, _seed_lsm.394
414 01f1 4889D0 movq %rdx, %rax # _seed_lsm.394, tmp116
415 01f4 48C1E01F salq $31, %rax #, tmp116
416 01f8 4829D0 subq %rdx, %rax # _seed_lsm.394, tmp117
417 01fb 4829C1 subq %rax, %rcx # tmp117, tmp109
420 # Randomisation.generated.h:45: arr[i].key = randomisation::GenerateRandomUint64();
45:Randomisation.generated.h **** arr[i].reference = reference + i;
422 01fe 48894FF0 movq %rcx, -16(%rdi) # _seed_lsm.394, MEM[base: _31, offset: 0B]
425 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
427 0202 4889CA movq %rcx, %rdx # tmp109, _seed_lsm.394
430 # Randomisation.generated.h:43: for (int i = 0; i < arraySize; i += 1)
43:Randomisation.generated.h **** {
432 0205 4939F8 cmpq %rdi, %r8 # ivtmp.401, _37
433 0208 75BE jne .L25 #,
434 020a 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.394, _seed
434 000000
435 .L30:
437 # Randomisation.generated.h:48: }
47:Randomisation.generated.h **** }
48:Randomisation.generated.h **** }
439 0211 C3 ret
443 662E0F1F
443 84000000
443 0000
444 .globl _ZN13randomisation19GenerateRandomArrayI20Sortable_TwoCmovTempEEvPT_m
446 _ZN13randomisation19GenerateRandomArrayI20Sortable_TwoCmovTempEEvPT_m:
49:Randomisation.generated.h **** template<>
50:Randomisation.generated.h **** void GenerateRandomArray<Sortable_TwoCmovTemp>(Sortable_TwoCmovTemp* arr, size_t arraySize)
51:Randomisation.generated.h **** {
452 # Randomisation.generated.h:52: for (int i = 0; i < arraySize; i += 1)
52:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
454 0220 4885F6 testq %rsi, %rsi # arraySize
455 0223 7455 je .L38 #,
456 0225 4C8D04F7 leaq (%rdi,%rsi,8), %r8 #, _15
459 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
461 0229 48BE0500 movabsq $8589934597, %rsi #, tmp100
461 00000200
461 0000
464 00
465 .L33:
466 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
468 0238 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp97
468 0000008F
468 BC0000
469 0243 4883C708 addq $8, %rdi #, ivtmp.411
470 0247 4889C8 movq %rcx, %rax # tmp97, tmp107
471 024a 48F7E6 mulq %rsi # tmp100
472 024d 4889C8 movq %rcx, %rax # tmp97, tmp101
473 0250 4829D0 subq %rdx, %rax # tmp99, tmp101
474 0253 48D1E8 shrq %rax # tmp102
475 0256 4801C2 addq %rax, %rdx # tmp102, tmp103
476 0259 48C1EA1E shrq $30, %rdx #, _13
477 025d 4889D0 movq %rdx, %rax # _13, tmp105
478 0260 48C1E01F salq $31, %rax #, tmp105
479 0264 4829D0 subq %rdx, %rax # _13, tmp106
480 0267 4829C1 subq %rax, %rcx # tmp106, tmp97
481 026a 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _13, _seed
481 000000
484 # Randomisation.generated.h:54: arr[i].key = randomisation::GenerateRandomUint64();
53:Randomisation.generated.h **** {
54:Randomisation.generated.h **** arr[i].key = randomisation::GenerateRandomUint64();
486 0271 48894FF8 movq %rcx, -8(%rdi) # _13, MEM[base: _22, offset: 0B]
487 # Randomisation.generated.h:52: for (int i = 0; i < arraySize; i += 1)
52:Randomisation.generated.h **** {
489 0275 4939F8 cmpq %rdi, %r8 # ivtmp.411, _15
490 0278 75BE jne .L33 #,
491 .L38:
493 # Randomisation.generated.h:56: }
55:Randomisation.generated.h **** }
56:Randomisation.generated.h **** }
495 027a C3 ret
499 00
500 .globl _ZN13randomisation19GenerateRandomArrayI24SortableRef_FourCmovTempEEvPT_m
502 _ZN13randomisation19GenerateRandomArrayI24SortableRef_FourCmovTempEEvPT_m:
57:Randomisation.generated.h **** template<>
58:Randomisation.generated.h **** void GenerateRandomArray<SortableRef_FourCmovTemp>(SortableRef_FourCmovTemp* arr, size_t arraySize)
59:Randomisation.generated.h **** {
509 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
511 0280 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp98
511 0000008F
511 BC0000
512 028b 49B90500 movabsq $8589934597, %r9 #, tmp101
512 00000200
512 0000
513 0295 4889C8 movq %rcx, %rax # tmp98, tmp126
514 0298 49F7E1 mulq %r9 # tmp101
515 029b 4889C8 movq %rcx, %rax # tmp98, tmp102
516 029e 4829D0 subq %rdx, %rax # tmp100, tmp102
517 02a1 48D1E8 shrq %rax # tmp103
518 02a4 4801C2 addq %rax, %rdx # tmp103, tmp104
519 02a7 48C1EA1E shrq $30, %rdx #, _seed_lsm.413
520 02ab 4889D0 movq %rdx, %rax # _seed_lsm.413, tmp106
521 02ae 48C1E01F salq $31, %rax #, tmp106
522 02b2 4829D0 subq %rdx, %rax # _seed_lsm.413, tmp107
523 02b5 4829C1 subq %rax, %rcx # tmp107, tmp98
524 02b8 4889CA movq %rcx, %rdx # tmp98, _seed_lsm.413
525 02bb 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.413, _seed
525 000000
530 # Randomisation.generated.h:61: for (int i = 0; i < arraySize; i += 1)
60:Randomisation.generated.h **** uint64_t reference = randomisation::GenerateRandomUint64();
61:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
532 02c2 4885F6 testq %rsi, %rsi # arraySize
533 02c5 745A je .L46 #,
534 02c7 48C1E604 salq $4, %rsi #, tmp108
536 02cb 4C8D0437 leaq (%rdi,%rsi), %r8 #, _37
537 02cf 4889CE movq %rcx, %rsi # _seed_lsm.413, ivtmp.421
540 0000
541 .L41:
544 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
546 02d8 4869CA8F imulq $48271, %rdx, %rcx #, _seed_lsm.413, tmp109
546 BC0000
549 # Randomisation.generated.h:64: arr[i].reference = reference + i;
62:Randomisation.generated.h **** {
63:Randomisation.generated.h **** arr[i].key = randomisation::GenerateRandomUint64();
64:Randomisation.generated.h **** arr[i].reference = reference + i;
551 02df 48897708 movq %rsi, 8(%rdi) # ivtmp.421, MEM[base: _31, offset: 8B]
552 02e3 4883C710 addq $16, %rdi #, ivtmp.420
553 02e7 4883C601 addq $1, %rsi #, ivtmp.421
557 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
559 02eb 4889C8 movq %rcx, %rax # tmp109, tmp127
560 02ee 49F7E1 mulq %r9 # tmp111
561 02f1 4889C8 movq %rcx, %rax # tmp109, tmp112
562 02f4 4829D0 subq %rdx, %rax # tmp110, tmp112
563 02f7 48D1E8 shrq %rax # tmp113
564 02fa 4801C2 addq %rax, %rdx # tmp113, tmp114
565 02fd 48C1EA1E shrq $30, %rdx #, _seed_lsm.413
566 0301 4889D0 movq %rdx, %rax # _seed_lsm.413, tmp116
567 0304 48C1E01F salq $31, %rax #, tmp116
568 0308 4829D0 subq %rdx, %rax # _seed_lsm.413, tmp117
569 030b 4829C1 subq %rax, %rcx # tmp117, tmp109
572 # Randomisation.generated.h:63: arr[i].key = randomisation::GenerateRandomUint64();
63:Randomisation.generated.h **** arr[i].reference = reference + i;
574 030e 48894FF0 movq %rcx, -16(%rdi) # _seed_lsm.413, MEM[base: _31, offset: 0B]
577 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
579 0312 4889CA movq %rcx, %rdx # tmp109, _seed_lsm.413
582 # Randomisation.generated.h:61: for (int i = 0; i < arraySize; i += 1)
61:Randomisation.generated.h **** {
584 0315 4939F8 cmpq %rdi, %r8 # ivtmp.420, _37
585 0318 75BE jne .L41 #,
586 031a 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.413, _seed
586 000000
587 .L46:
589 # Randomisation.generated.h:66: }
65:Randomisation.generated.h **** }
66:Randomisation.generated.h **** }
591 0321 C3 ret
595 662E0F1F
595 84000000
595 0000
596 .globl _ZN13randomisation19GenerateRandomArrayI30SortableRef_FourCmovTemp_SplitEEvPT_m
598 _ZN13randomisation19GenerateRandomArrayI30SortableRef_FourCmovTemp_SplitEEvPT_m:
67:Randomisation.generated.h **** template<>
68:Randomisation.generated.h **** void GenerateRandomArray<SortableRef_FourCmovTemp_Split>(SortableRef_FourCmovTemp_Split* arr, size_
69:Randomisation.generated.h **** {
605 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
607 0330 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp98
607 0000008F
607 BC0000
608 033b 49B90500 movabsq $8589934597, %r9 #, tmp101
608 00000200
608 0000
609 0345 4889C8 movq %rcx, %rax # tmp98, tmp126
610 0348 49F7E1 mulq %r9 # tmp101
611 034b 4889C8 movq %rcx, %rax # tmp98, tmp102
612 034e 4829D0 subq %rdx, %rax # tmp100, tmp102
613 0351 48D1E8 shrq %rax # tmp103
614 0354 4801C2 addq %rax, %rdx # tmp103, tmp104
615 0357 48C1EA1E shrq $30, %rdx #, _seed_lsm.425
616 035b 4889D0 movq %rdx, %rax # _seed_lsm.425, tmp106
617 035e 48C1E01F salq $31, %rax #, tmp106
618 0362 4829D0 subq %rdx, %rax # _seed_lsm.425, tmp107
619 0365 4829C1 subq %rax, %rcx # tmp107, tmp98
620 0368 4889CA movq %rcx, %rdx # tmp98, _seed_lsm.425
621 036b 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.425, _seed
621 000000
626 # Randomisation.generated.h:71: for (int i = 0; i < arraySize; i += 1)
70:Randomisation.generated.h **** uint64_t reference = randomisation::GenerateRandomUint64();
71:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
628 0372 4885F6 testq %rsi, %rsi # arraySize
629 0375 745A je .L54 #,
630 0377 48C1E604 salq $4, %rsi #, tmp108
632 037b 4C8D0437 leaq (%rdi,%rsi), %r8 #, _37
633 037f 4889CE movq %rcx, %rsi # _seed_lsm.425, ivtmp.433
636 0000
637 .L49:
640 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
642 0388 4869CA8F imulq $48271, %rdx, %rcx #, _seed_lsm.425, tmp109
642 BC0000
645 # Randomisation.generated.h:74: arr[i].reference = reference + i;
72:Randomisation.generated.h **** {
73:Randomisation.generated.h **** arr[i].key = randomisation::GenerateRandomUint64();
74:Randomisation.generated.h **** arr[i].reference = reference + i;
647 038f 48897708 movq %rsi, 8(%rdi) # ivtmp.433, MEM[base: _31, offset: 8B]
648 0393 4883C710 addq $16, %rdi #, ivtmp.432
649 0397 4883C601 addq $1, %rsi #, ivtmp.433
653 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
655 039b 4889C8 movq %rcx, %rax # tmp109, tmp127
656 039e 49F7E1 mulq %r9 # tmp111
657 03a1 4889C8 movq %rcx, %rax # tmp109, tmp112
658 03a4 4829D0 subq %rdx, %rax # tmp110, tmp112
659 03a7 48D1E8 shrq %rax # tmp113
660 03aa 4801C2 addq %rax, %rdx # tmp113, tmp114
661 03ad 48C1EA1E shrq $30, %rdx #, _seed_lsm.425
662 03b1 4889D0 movq %rdx, %rax # _seed_lsm.425, tmp116
663 03b4 48C1E01F salq $31, %rax #, tmp116
664 03b8 4829D0 subq %rdx, %rax # _seed_lsm.425, tmp117
665 03bb 4829C1 subq %rax, %rcx # tmp117, tmp109
668 # Randomisation.generated.h:73: arr[i].key = randomisation::GenerateRandomUint64();
73:Randomisation.generated.h **** arr[i].reference = reference + i;
670 03be 48894FF0 movq %rcx, -16(%rdi) # _seed_lsm.425, MEM[base: _31, offset: 0B]
673 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
675 03c2 4889CA movq %rcx, %rdx # tmp109, _seed_lsm.425
678 # Randomisation.generated.h:71: for (int i = 0; i < arraySize; i += 1)
71:Randomisation.generated.h **** {
680 03c5 4939F8 cmpq %rdi, %r8 # ivtmp.432, _37
681 03c8 75BE jne .L49 #,
682 03ca 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.425, _seed
682 000000
683 .L54:
685 # Randomisation.generated.h:76: }
75:Randomisation.generated.h **** }
76:Randomisation.generated.h **** }
687 03d1 C3 ret
691 662E0F1F
691 84000000
691 0000
692 .globl _ZN13randomisation19GenerateRandomArrayI30Sortable_ThreeCmovRegisterTempEEvPT_m
694 _ZN13randomisation19GenerateRandomArrayI30Sortable_ThreeCmovRegisterTempEEvPT_m:
77:Randomisation.generated.h **** template<>
78:Randomisation.generated.h **** void GenerateRandomArray<Sortable_ThreeCmovRegisterTemp>(Sortable_ThreeCmovRegisterTemp* arr, size_
79:Randomisation.generated.h **** {
700 # Randomisation.generated.h:80: for (int i = 0; i < arraySize; i += 1)
80:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
702 03e0 4885F6 testq %rsi, %rsi # arraySize
703 03e3 7455 je .L62 #,
704 03e5 4C8D04F7 leaq (%rdi,%rsi,8), %r8 #, _15
707 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
709 03e9 48BE0500 movabsq $8589934597, %rsi #, tmp100
709 00000200
709 0000
712 00
713 .L57:
714 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
716 03f8 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp97
716 0000008F
716 BC0000
717 0403 4883C708 addq $8, %rdi #, ivtmp.442
718 0407 4889C8 movq %rcx, %rax # tmp97, tmp107
719 040a 48F7E6 mulq %rsi # tmp100
720 040d 4889C8 movq %rcx, %rax # tmp97, tmp101
721 0410 4829D0 subq %rdx, %rax # tmp99, tmp101
722 0413 48D1E8 shrq %rax # tmp102
723 0416 4801C2 addq %rax, %rdx # tmp102, tmp103
724 0419 48C1EA1E shrq $30, %rdx #, _13
725 041d 4889D0 movq %rdx, %rax # _13, tmp105
726 0420 48C1E01F salq $31, %rax #, tmp105
727 0424 4829D0 subq %rdx, %rax # _13, tmp106
728 0427 4829C1 subq %rax, %rcx # tmp106, tmp97
729 042a 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _13, _seed
729 000000
732 # Randomisation.generated.h:82: arr[i].key = randomisation::GenerateRandomUint64();
81:Randomisation.generated.h **** {
82:Randomisation.generated.h **** arr[i].key = randomisation::GenerateRandomUint64();
734 0431 48894FF8 movq %rcx, -8(%rdi) # _13, MEM[base: _22, offset: 0B]
735 # Randomisation.generated.h:80: for (int i = 0; i < arraySize; i += 1)
80:Randomisation.generated.h **** {
737 0435 4939F8 cmpq %rdi, %r8 # ivtmp.442, _15
738 0438 75BE jne .L57 #,
739 .L62:
741 # Randomisation.generated.h:84: }
83:Randomisation.generated.h **** }
84:Randomisation.generated.h **** }
743 043a C3 ret
747 00
748 .globl _ZN13randomisation19GenerateRandomArrayI31SortableRef_SixCmovRegisterTempEEvPT_m
750 _ZN13randomisation19GenerateRandomArrayI31SortableRef_SixCmovRegisterTempEEvPT_m:
85:Randomisation.generated.h **** template<>
86:Randomisation.generated.h **** void GenerateRandomArray<SortableRef_SixCmovRegisterTemp>(SortableRef_SixCmovRegisterTemp* arr, siz
87:Randomisation.generated.h **** {
757 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
759 0440 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp98
759 0000008F
759 BC0000
760 044b 49B90500 movabsq $8589934597, %r9 #, tmp101
760 00000200
760 0000
761 0455 4889C8 movq %rcx, %rax # tmp98, tmp126
762 0458 49F7E1 mulq %r9 # tmp101
763 045b 4889C8 movq %rcx, %rax # tmp98, tmp102
764 045e 4829D0 subq %rdx, %rax # tmp100, tmp102
765 0461 48D1E8 shrq %rax # tmp103
766 0464 4801C2 addq %rax, %rdx # tmp103, tmp104
767 0467 48C1EA1E shrq $30, %rdx #, _seed_lsm.444
768 046b 4889D0 movq %rdx, %rax # _seed_lsm.444, tmp106
769 046e 48C1E01F salq $31, %rax #, tmp106
770 0472 4829D0 subq %rdx, %rax # _seed_lsm.444, tmp107
771 0475 4829C1 subq %rax, %rcx # tmp107, tmp98
772 0478 4889CA movq %rcx, %rdx # tmp98, _seed_lsm.444
773 047b 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.444, _seed
773 000000
778 # Randomisation.generated.h:89: for (int i = 0; i < arraySize; i += 1)
88:Randomisation.generated.h **** uint64_t reference = randomisation::GenerateRandomUint64();
89:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
780 0482 4885F6 testq %rsi, %rsi # arraySize
781 0485 745A je .L70 #,
782 0487 48C1E604 salq $4, %rsi #, tmp108
784 048b 4C8D0437 leaq (%rdi,%rsi), %r8 #, _37
785 048f 4889CE movq %rcx, %rsi # _seed_lsm.444, ivtmp.452
788 0000
789 .L65:
792 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
794 0498 4869CA8F imulq $48271, %rdx, %rcx #, _seed_lsm.444, tmp109
794 BC0000
797 # Randomisation.generated.h:92: arr[i].reference = reference + i;
90:Randomisation.generated.h **** {
91:Randomisation.generated.h **** arr[i].key = randomisation::GenerateRandomUint64();
92:Randomisation.generated.h **** arr[i].reference = reference + i;
799 049f 48897708 movq %rsi, 8(%rdi) # ivtmp.452, MEM[base: _31, offset: 8B]
800 04a3 4883C710 addq $16, %rdi #, ivtmp.451
801 04a7 4883C601 addq $1, %rsi #, ivtmp.452
805 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
807 04ab 4889C8 movq %rcx, %rax # tmp109, tmp127
808 04ae 49F7E1 mulq %r9 # tmp111
809 04b1 4889C8 movq %rcx, %rax # tmp109, tmp112
810 04b4 4829D0 subq %rdx, %rax # tmp110, tmp112
811 04b7 48D1E8 shrq %rax # tmp113
812 04ba 4801C2 addq %rax, %rdx # tmp113, tmp114
813 04bd 48C1EA1E shrq $30, %rdx #, _seed_lsm.444
814 04c1 4889D0 movq %rdx, %rax # _seed_lsm.444, tmp116
815 04c4 48C1E01F salq $31, %rax #, tmp116
816 04c8 4829D0 subq %rdx, %rax # _seed_lsm.444, tmp117
817 04cb 4829C1 subq %rax, %rcx # tmp117, tmp109
820 # Randomisation.generated.h:91: arr[i].key = randomisation::GenerateRandomUint64();
91:Randomisation.generated.h **** arr[i].reference = reference + i;
822 04ce 48894FF0 movq %rcx, -16(%rdi) # _seed_lsm.444, MEM[base: _31, offset: 0B]
825 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
827 04d2 4889CA movq %rcx, %rdx # tmp109, _seed_lsm.444
830 # Randomisation.generated.h:89: for (int i = 0; i < arraySize; i += 1)
89:Randomisation.generated.h **** {
832 04d5 4939F8 cmpq %rdi, %r8 # ivtmp.451, _37
833 04d8 75BE jne .L65 #,
834 04da 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.444, _seed
834 000000
835 .L70:
837 # Randomisation.generated.h:94: }
93:Randomisation.generated.h **** }
94:Randomisation.generated.h **** }
839 04e1 C3 ret
843 662E0F1F
843 84000000
843 0000
844 .globl _ZN13randomisation19GenerateRandomArrayI24SortableRef_ClangVersionEEvPT_m
846 _ZN13randomisation19GenerateRandomArrayI24SortableRef_ClangVersionEEvPT_m:
95:Randomisation.generated.h **** template<>
96:Randomisation.generated.h **** void GenerateRandomArray<SortableRef_ClangVersion>(SortableRef_ClangVersion* arr, size_t arraySize)
97:Randomisation.generated.h **** {
853 # Randomisation.h:20: _seed = _seed * 48271 % 2147483647;
20:Randomisation.h **** return _seed;
855 04f0 48690D00 imulq $48271, _ZN13randomisation5_seedE(%rip), %rcx #, _seed, tmp98
855 0000008F
855 BC0000
856 04fb 49B90500 movabsq $8589934597, %r9 #, tmp101
856 00000200
856 0000
857 0505 4889C8 movq %rcx, %rax # tmp98, tmp126
858 0508 49F7E1 mulq %r9 # tmp101
859 050b 4889C8 movq %rcx, %rax # tmp98, tmp102
860 050e 4829D0 subq %rdx, %rax # tmp100, tmp102
861 0511 48D1E8 shrq %rax # tmp103
862 0514 4801C2 addq %rax, %rdx # tmp103, tmp104
863 0517 48C1EA1E shrq $30, %rdx #, _seed_lsm.456
864 051b 4889D0 movq %rdx, %rax # _seed_lsm.456, tmp106
865 051e 48C1E01F salq $31, %rax #, tmp106
866 0522 4829D0 subq %rdx, %rax # _seed_lsm.456, tmp107
867 0525 4829C1 subq %rax, %rcx # tmp107, tmp98
868 0528 4889CA movq %rcx, %rdx # tmp98, _seed_lsm.456
869 052b 48890D00 movq %rcx, _ZN13randomisation5_seedE(%rip) # _seed_lsm.456, _seed
869 000000
874 # Randomisation.generated.h:99: for (int i = 0; i < arraySize; i += 1)
98:Randomisation.generated.h **** uint64_t reference = randomisation::GenerateRandomUint64();
99:Randomisation.generated.h **** for (int i = 0; i < arraySize; i += 1)
876 0532 4885F6 testq %rsi, %rsi # arraySize
877 0535 745A je .L78 #,