Test results for amd64, h3neo, crypto_sort/int32

[Page version: 20260624 14:03:57]

Measurements for amd64, h3neo, crypto_sort Test results for amd64, h3neo, crypto_sort Test results for crypto_sort/int32
Computer: h3neo
Microarchitecture: amd64; K10 45nm (100f63)
Architecture: amd64
CPU ID: AuthenticAMD-00100f63-078bfbff
SUPERCOP version: 20260330
Operation: crypto_sort
Primitive: int32
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
380791121 0 021663 1248 1512T:radix256mlclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
383431889 0 025613 1256 1512T:radix256mlclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
384401194 0 023573 1256 1512T:radix256mlclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
384821194 0 024621 1256 1512T:radix256mlclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
384881517 0 024325 1224 1576T:radix256mlgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
385091194 0 022229 1256 1512T:radix256mlclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
390891294 0 022067 1200 1544T:radix256mlgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
440806965 0 031757 1224 1576T:radix256smlgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
441092253 0 025045 1224 1576T:radix256smlgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
442731665 0 022191 1248 1512T:radix256smlclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
444371932 0 022731 1200 1544T:radix256smlgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
445411511 0 023484 1216 1576T:radix256mlgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
448382849 0 026557 1256 1512T:radix256smlclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
449551780 0 025213 1256 1512T:radix256smlclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
449771812 0 022853 1256 1512T:radix256smlclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
450571780 0 024165 1256 1512T:radix256smlclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
470072224 0 024204 1216 1576T:radix256smlgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
47025522 0 021039 1248 1512T:herfclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
47883559 0 023965 1256 1512T:herfclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
47958559 0 021573 1256 1512T:herfclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
47966559 0 022917 1256 1512T:herfclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
48107976 0 024677 1256 1512T:herfclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
48630626 0 021379 1200 1544T:herfgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
49895725 0 025477 1224 1576T:herfgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
49993725 0 023477 1224 1576T:herfgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
64884695 0 022596 1216 1576T:herfgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
6942813415 0 038157 1224 1576x863gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
6954210661 0 034085 1256 1512x863clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
697809203 0 031565 1256 1512x863clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
703628724 0 029741 1256 1512x863clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
7074610189 0 032925 1224 1576x863gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
708277883 0 028407 1248 1512x863clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
7172210595 0 034277 1256 1512x863clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
747089952 0 031852 1216 1576x863gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
747141392 0 027395 1320 1608T:stdsortg++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
748671774 0 029755 1320 1608T:stdsortg++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
780081380 0 025568 1328 1512T:stdsortclang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
781931289 0 024390 1336 1512T:stdsortclang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
782051570 0 027016 1328 1512T:stdsortclang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
80006618 0 021143 1248 1512portable4clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
801971418 0 024256 1328 1512T:stdsortclang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
82811842 0 024261 1256 1512portable4clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
82931842 0 024549 1256 1512portable4clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
84094730 0 021741 1256 1512portable4clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
842651151 0 025842 1304 1608T:stdsortg++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
85322762 0 023149 1256 1512portable4clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
85768948 0 024259 1296 1576T:stdsortg++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
913214141 0 028949 1224 1576T:radix256mlgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
933901158 0 021679 1248 1512portable5clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
938611142 0 021647 1248 1512x86clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
951841383 0 022405 1256 1512portable5clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
953111415 0 023781 1256 1512x86clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
960591541 0 024957 1256 1512x86clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
961341383 0 022405 1256 1512x86clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
964321589 0 025021 1256 1512portable5clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
966441447 0 023813 1256 1512portable5clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
988081544 0 025245 1256 1512x86clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
99192905 0 023701 1224 1576portable4gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
995491592 0 025277 1256 1512portable5clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
101898905 0 025701 1224 1576portable4gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
104897349 0 022733 1256 1512portable3clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
104935349 0 022733 1256 1512compactclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
104969349 0 021357 1256 1512portable3clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
104989349 0 021357 1256 1512compactclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
105563353 0 023781 1256 1512portable3clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
105573353 0 024037 1256 1512portable3clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
105580353 0 023781 1256 1512compactclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1089751127 0 021899 1200 1544x86gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
110727291 0 020791 1248 1512portable3clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
110961291 0 020791 1248 1512compactclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1111711542 0 026293 1224 1576x86gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1111871510 0 026293 1224 1576portable5gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1113271664 0 023620 1216 1576portable5gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1114151510 0 024293 1224 1576portable5gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1127321542 0 024293 1224 1576x86gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
113800353 0 024037 1256 1512compactclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1145504300 0 025083 1200 1544x863gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1158311687 0 023588 1216 1576x86gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
118116440 0 025173 1224 1576compactgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
118455440 0 023173 1224 1576compactgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
118788435 0 022396 1216 1576portable3gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
119726436 0 025205 1224 1576portable3gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
119853436 0 023205 1224 1576portable3gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
123162426 0 022332 1216 1576compactgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
124340962 0 022916 1216 1576portable4gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
128815320 0 021075 1200 1544portable3gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
146338320 0 021075 1200 1544compactgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
184544718 0 021475 1200 1544portable4gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330
1908421170 0 021955 1200 1544portable5gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2026033120260330

Test failure


error 132
timeout: the monitored command dumped core
Illegal instruction

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:krasnovclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:krasnovclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:krasnovclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:krasnovclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:krasnovclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:krasnovgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:krasnovgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:krasnovgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:krasnovgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


sort.c: sort.c:114:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'int32_sort_8through16' that is compiled without support for 'avx'
sort.c:   114 |   x0 = int32x8_load(x+0); // 0 2 4 6 8 10 12 14
sort.c:       |        ^
sort.c: sort.c:17:25: note: expanded from macro 'int32x8_load'
sort.c:    17 | #define int32x8_load(z) _mm256_loadu_si256((__m256i *) (z))
sort.c:       |                         ^
sort.c: sort.c:114:8: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
sort.c: sort.c:17:25: note: expanded from macro 'int32x8_load'
sort.c:    17 | #define int32x8_load(z) _mm256_loadu_si256((__m256i *) (z))
sort.c:       |                         ^
sort.c: sort.c:115:11: error: always_inline function '_mm256_set1_epi32' requires target feature 'avx', but would be inlined into function 'int32_sort_8through16' that is compiled without support for 'avx'
sort.c:   115 |   infty = int32x8_broadcast(int32_largest);
sort.c:       |           ^
sort.c: sort.c:37:27: note: expanded from macro 'int32x8_broadcast'
sort.c:    37 | #define int32x8_broadcast _mm256_set1_epi32
sort.c:       |                           ^
sort.c: sort.c:115:11: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
sort.c: sort.c:37:27: note: expanded from macro 'int32x8_broadcast'
sort.c:    37 | #define int32x8_broadcast _mm256_set1_epi32
sort.c:       |                           ^
sort.c: sort.c:117:23: error: always_inline function '_mm256_setr_epi32' requires target feature 'avx', but would be inlined into function 'int32_sort_8through16' that is compiled without support for 'avx'
sort.c:   117 |   diff1 = int32x8_sub(int32x8_set(8,9,10,11,12,13,14,15),int32x8_broadcast(pos1));
sort.c:       |                       ^
sort.c: sort.c:36:21: note: expanded from macro 'int32x8_set'
sort.c:    36 | #define int32x8_set _mm256_setr_epi32
sort.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
2026avx2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
2026avx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
2026avx2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
2026avx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
2026avx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


sort.c: sort.c: In function 'int32_sort_8through16':
sort.c: sort.c:114:6: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
sort.c:   114 |   x0 = int32x8_load(x+0); // 0 2 4 6 8 10 12 14
sort.c:       |      ^
sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/immintrin.h:43,
sort.c:                  from sort.c:4:
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avxintrin.h:933:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
sort.c:   933 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
sort.c:       | ^~~~~~~~~~~~~~~~~~~
sort.c: sort.c:18:28: note: called from here
sort.c:    18 | #define int32x8_store(z,i) _mm256_storeu_si256((__m256i *) (z),(i))
sort.c:       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sort.c: sort.c:170:3: note: in expansion of macro 'int32x8_store'
sort.c:   170 |   int32x8_store(x+0,x0);
sort.c:       |   ^~~~~~~~~~~~~
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avxintrin.h:933:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
sort.c:   933 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
sort.c:       | ^~~~~~~~~~~~~~~~~~~
sort.c: sort.c:18:28: note: called from here
sort.c:    18 | #define int32x8_store(z,i) _mm256_storeu_si256((__m256i *) (z),(i))
sort.c:       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sort.c: sort.c:169:3: note: in expansion of macro 'int32x8_store'
sort.c:   169 |   int32x8_store(x+pos1-8,int32x8_varextract(x1,int32x8_add(int32x8_set(0,1,2,3,4,5,6,7),int32x8_broadcast(pos1))));
sort.c:       |   ^~~~~~~~~~~~~
sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/immintrin.h:51:
sort.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
2026avx2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
2026avx2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
2026avx2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
2026avx2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


api.cpp: In file included from api.cpp:3:
api.cpp: In file included from ./aspas.h:204:
api.cpp: In file included from ./aspas.tcc:32:
api.cpp: In file included from ./merger.h:64:
api.cpp: ./merger.tcc:196:13: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^~~~~
api.cpp: ./merger.tcc:196:13: note: place parentheses around the '==' expression to silence this warning
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^
api.cpp:       |              (   )
api.cpp: ./merger.tcc:196:13: note: place parentheses around the & expression to evaluate it first
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^
api.cpp:       |        (      )
api.cpp: ./merger.tcc:379:17: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^~~~~~~~
api.cpp: ./merger.tcc:379:17: note: place parentheses around the '==' expression to silence this warning
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^
api.cpp:       |                   (     )
api.cpp: ./merger.tcc:379:17: note: place parentheses around the & expression to evaluate it first
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^
api.cpp: ...
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: unused function 'stq_sort' [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: 1 warning generated.
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/clang++_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/./aspas.tcc:47:(.text+0x...): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::internal::sorter<int>(int*&, unsigned int)'
try.cpp: clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aspasclang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


api.cpp: In file included from api.cpp:3:
api.cpp: In file included from ./aspas.h:204:
api.cpp: In file included from ./aspas.tcc:32:
api.cpp: In file included from ./merger.h:64:
api.cpp: ./merger.tcc:196:13: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^~~~~
api.cpp: ./merger.tcc:196:13: note: place parentheses around the '==' expression to silence this warning
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^
api.cpp:       |              (   )
api.cpp: ./merger.tcc:196:13: note: place parentheses around the & expression to evaluate it first
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^
api.cpp:       |        (      )
api.cpp: ./merger.tcc:379:17: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^~~~~~~~
api.cpp: ./merger.tcc:379:17: note: place parentheses around the '==' expression to silence this warning
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^
api.cpp:       |                   (     )
api.cpp: ./merger.tcc:379:17: note: place parentheses around the & expression to evaluate it first
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^
api.cpp: ...
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: unused function 'stq_sort' [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: 1 warning generated.
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/clang++_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/./aspas.tcc:47:(.text+0x...): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::internal::sorter<int>(int*&, unsigned int)'
try.cpp: clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aspasclang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


api.cpp: In file included from api.cpp:3:
api.cpp: In file included from ./aspas.h:204:
api.cpp: In file included from ./aspas.tcc:32:
api.cpp: In file included from ./merger.h:64:
api.cpp: ./merger.tcc:196:13: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^~~~~
api.cpp: ./merger.tcc:196:13: note: place parentheses around the '==' expression to silence this warning
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^
api.cpp:       |              (   )
api.cpp: ./merger.tcc:196:13: note: place parentheses around the & expression to evaluate it first
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^
api.cpp:       |        (      )
api.cpp: ./merger.tcc:379:17: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^~~~~~~~
api.cpp: ./merger.tcc:379:17: note: place parentheses around the '==' expression to silence this warning
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^
api.cpp:       |                   (     )
api.cpp: ./merger.tcc:379:17: note: place parentheses around the & expression to evaluate it first
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^
api.cpp: ...
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: unused function 'stq_sort' [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: 1 warning generated.
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/clang++_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/./aspas.tcc:47:(.text+0x...): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::internal::sorter<int>(int*&, unsigned int)'
try.cpp: clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aspasclang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


api.cpp: In file included from api.cpp:3:
api.cpp: In file included from ./aspas.h:204:
api.cpp: In file included from ./aspas.tcc:32:
api.cpp: In file included from ./merger.h:64:
api.cpp: ./merger.tcc:196:13: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^~~~~
api.cpp: ./merger.tcc:196:13: note: place parentheses around the '==' expression to silence this warning
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^
api.cpp:       |              (   )
api.cpp: ./merger.tcc:196:13: note: place parentheses around the & expression to evaluate it first
api.cpp:   196 |     if(count&1==1)
api.cpp:       |             ^
api.cpp:       |        (      )
api.cpp: ./merger.tcc:379:17: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^~~~~~~~
api.cpp: ./merger.tcc:379:17: note: place parentheses around the '==' expression to silence this warning
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^
api.cpp:       |                   (     )
api.cpp: ./merger.tcc:379:17: note: place parentheses around the & expression to evaluate it first
api.cpp:   379 |         if (num & 1 == 1)
api.cpp:       |                 ^
api.cpp: ...
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: unused function 'stq_sort' [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: 1 warning generated.
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/clang++_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/./aspas.tcc:47:(.text+0x...): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::internal::sorter<int>(int*&, unsigned int)'
try.cpp: clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aspasclang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


api.cpp: In file included from merger.h:64,
api.cpp:                  from aspas.tcc:32,
api.cpp:                  from aspas.h:204,
api.cpp:                  from api.cpp:3:
api.cpp: merger.tcc: In instantiation of 'void aspas::internal::merger(T*&, uint32_t) [with T = int; uint32_t = unsigned int]':
api.cpp: aspas.tcc:48:21:   required from 'void aspas::sort(T*, uint32_t) [with T = int; uint32_t = unsigned int]'
api.cpp: api.cpp:7:14:   required from here
api.cpp: merger.tcc:196:15: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
api.cpp:   196 |     if(count&1==1)
api.cpp:       |              ~^~~
api.cpp: merger.tcc: In function 'void aspas::internal::merger(T*&, uint32_t) [with T = int]':
api.cpp: merger.tcc:148:27: warning: 'stride' is used uninitialized [-Wuninitialized]
api.cpp:   148 |     uint32_t block_size = stride * way;
api.cpp:       |                           ^~~~~~
api.cpp: merger.tcc:106:13: note: 'stride' was declared here
api.cpp:   106 |     uint8_t stride;
api.cpp:       |             ^~~~~~
api.cpp: merger.tcc:148:14: warning: 'way' is used uninitialized [-Wuninitialized]
api.cpp:   148 |     uint32_t block_size = stride * way;
api.cpp:       |              ^~~~~~~~~~
api.cpp: merger.tcc:107:14: note: 'way' was declared here
api.cpp:   107 |     uint32_t way;
api.cpp:       |              ^~~
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: 'void stq_sort(std::vector<double>, long long int)' defined but not used [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/aspas.tcc:47:(.text+0x...): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::internal::sorter<int>(int*&, unsigned int)'
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::internal::merger<int>(int*&, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:170:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x10f): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: /usr/bin/ld: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:161:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x1f8): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: collect2: error: ld returned 1 exit status

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aspasg++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


api.cpp: In file included from merger.h:64,
api.cpp:                  from aspas.tcc:32,
api.cpp:                  from aspas.h:204,
api.cpp:                  from api.cpp:3:
api.cpp: merger.tcc: In instantiation of 'void aspas::internal::merger(T*&, uint32_t) [with T = int; uint32_t = unsigned int]':
api.cpp: aspas.tcc:48:21:   required from 'void aspas::sort(T*, uint32_t) [with T = int; uint32_t = unsigned int]'
api.cpp: api.cpp:7:14:   required from here
api.cpp: merger.tcc:196:15: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
api.cpp:   196 |     if(count&1==1)
api.cpp:       |              ~^~~
api.cpp: merger.tcc: In function 'void aspas::internal::merger(T*&, uint32_t) [with T = int]':
api.cpp: merger.tcc:148:27: warning: 'stride' is used uninitialized [-Wuninitialized]
api.cpp:   148 |     uint32_t block_size = stride * way;
api.cpp:       |                           ^~~~~~
api.cpp: merger.tcc:106:13: note: 'stride' was declared here
api.cpp:   106 |     uint8_t stride;
api.cpp:       |             ^~~~~~
api.cpp: merger.tcc:148:14: warning: 'way' is used uninitialized [-Wuninitialized]
api.cpp:   148 |     uint32_t block_size = stride * way;
api.cpp:       |              ^~~~~~~~~~
api.cpp: merger.tcc:107:14: note: 'way' was declared here
api.cpp:   107 |     uint32_t way;
api.cpp:       |              ^~~
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: 'void stq_sort(std::vector<double>, long long int)' defined but not used [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/aspas.tcc:47:(.text+0x...): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::internal::sorter<int>(int*&, unsigned int)'
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::internal::merger<int>(int*&, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:161:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0xef): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: /usr/bin/ld: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:161:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x14d): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: /usr/bin/ld: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:170:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x194): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: /usr/bin/ld: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:161:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x248): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: /usr/bin/ld: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:170:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x2ea): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: collect2: error: ld returned 1 exit status

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aspasg++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


api.cpp: In file included from merger.h:64,
api.cpp:                  from aspas.tcc:32,
api.cpp:                  from aspas.h:204,
api.cpp:                  from api.cpp:3:
api.cpp: merger.tcc: In instantiation of 'void aspas::internal::merger(T*&, uint32_t) [with T = int; uint32_t = unsigned int]':
api.cpp: aspas.tcc:48:21:   required from 'void aspas::sort(T*, uint32_t) [with T = int; uint32_t = unsigned int]'
api.cpp: api.cpp:7:14:   required from here
api.cpp: merger.tcc:196:15: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
api.cpp:   196 |     if(count&1==1)
api.cpp:       |              ~^~~
api.cpp: merger.tcc: In function 'void aspas::internal::merger(T*&, uint32_t) [with T = int]':
api.cpp: merger.tcc:148:27: warning: 'stride' is used uninitialized [-Wuninitialized]
api.cpp:   148 |     uint32_t block_size = stride * way;
api.cpp:       |                           ^~~~~~
api.cpp: merger.tcc:106:13: note: 'stride' was declared here
api.cpp:   106 |     uint8_t stride;
api.cpp:       |             ^~~~~~
api.cpp: merger.tcc:148:14: warning: 'way' is used uninitialized [-Wuninitialized]
api.cpp:   148 |     uint32_t block_size = stride * way;
api.cpp:       |              ^~~~~~~~~~
api.cpp: merger.tcc:107:14: note: 'way' was declared here
api.cpp:   107 |     uint32_t way;
api.cpp:       |              ^~~
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: 'void stq_sort(std::vector<double>, long long int)' defined but not used [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/aspas.tcc:47:(.text+0x...): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::internal::sorter<int>(int*&, unsigned int)'
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::internal::merger<int>(int*&, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:170:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x128): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: /usr/bin/ld: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:161:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x27f): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: collect2: error: ld returned 1 exit status

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aspasg++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


api.cpp: In file included from merger.h:64,
api.cpp:                  from aspas.tcc:32,
api.cpp:                  from aspas.h:204,
api.cpp:                  from api.cpp:3:
api.cpp: merger.tcc: In instantiation of 'void aspas::internal::merger(T*&, uint32_t) [with T = int; uint32_t = unsigned int]':
api.cpp: aspas.tcc:48:21:   required from 'void aspas::sort(T*, uint32_t) [with T = int; uint32_t = unsigned int]'
api.cpp: api.cpp:7:14:   required from here
api.cpp: merger.tcc:196:15: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
api.cpp:   196 |     if(count&1==1)
api.cpp:       |              ~^~~
api.cpp: merger.tcc: In function 'void aspas::internal::merger(T*&, uint32_t) [with T = int]':
api.cpp: merger.tcc:148:27: warning: 'stride' may be used uninitialized [-Wmaybe-uninitialized]
api.cpp:   148 |     uint32_t block_size = stride * way;
api.cpp:       |                           ^~~~~~
api.cpp: merger.tcc:106:13: note: 'stride' was declared here
api.cpp:   106 |     uint8_t stride;
api.cpp:       |             ^~~~~~
api.cpp: merger.tcc:148:14: warning: 'way' may be used uninitialized [-Wmaybe-uninitialized]
api.cpp:   148 |     uint32_t block_size = stride * way;
api.cpp:       |              ^~~~~~~~~~
api.cpp: merger.tcc:107:14: note: 'way' was declared here
api.cpp:   107 |     uint32_t way;
api.cpp:       |              ^~~
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: 'void stq_sort(std::vector<double>, long long int)' defined but not used [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/aspas.tcc:47:(.text+0x...): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::internal::sorter<int>(int*&, unsigned int)'
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::internal::merger<int>(int*&, unsigned int)':
try.cpp: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:161:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x167): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: /usr/bin/ld: .../supercop-data/h3neo/amd64/try/cpp/g++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_sort/int32/aspas/work/merger.tcc:170:(.text._ZN5aspas8internal6mergerIiEEvRPT_j[_ZN5aspas8internal6mergerIiEEvRPT_j]+0x22b): undefined reference to `std::enable_if<std::is_same<int, int>::value, void>::type aspas::merge<int>(int*, unsigned int, int*, unsigned int, int*)'
try.cpp: collect2: error: ld returned 1 exit status

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aspasg++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall

Compiler output


sort.c: sort.c:940:40: error: always_inline function '_mm256_set1_epi32' requires target feature 'avx', but would be inlined into function 'int32_sort' that is compiled without support for 'avx'
sort.c:   940 |     for (i = q>>3;i < q>>2;++i) y[i] = _mm256_set1_epi32(0x7fffffff);
sort.c:       |                                        ^
sort.c: sort.c:940:40: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
sort.c: sort.c:956:22: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'int32_sort' that is compiled without support for 'avx'
sort.c:   956 |         int32x8 x0 = int32x8_load(&x[i]);
sort.c:       |                      ^
sort.c: sort.c:9:25: note: expanded from macro 'int32x8_load'
sort.c:     9 | #define int32x8_load(z) _mm256_loadu_si256((__m256i *) (z))
sort.c:       |                         ^
sort.c: sort.c:956:22: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
sort.c: sort.c:9:25: note: expanded from macro 'int32x8_load'
sort.c:     9 | #define int32x8_load(z) _mm256_loadu_si256((__m256i *) (z))
sort.c:       |                         ^
sort.c: sort.c:957:22: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'int32_sort' that is compiled without support for 'avx'
sort.c:   957 |         int32x8 x1 = int32x8_load(&x[i+q]);
sort.c:       |                      ^
sort.c: sort.c:9:25: note: expanded from macro 'int32x8_load'
sort.c:     9 | #define int32x8_load(z) _mm256_loadu_si256((__m256i *) (z))
sort.c:       |                         ^
sort.c: sort.c:957:22: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
sort.c: sort.c:9:25: note: expanded from macro 'int32x8_load'
sort.c:     9 | #define int32x8_load(z) _mm256_loadu_si256((__m256i *) (z))
sort.c:       |                         ^
sort.c: sort.c:958:22: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'int32_sort' that is compiled without support for 'avx'
sort.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
avx2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
avx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
avx2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
avx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
avx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


sort.c: sort.c: In function 'int32_sort':
sort.c: sort.c:940:38: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
sort.c:   940 |     for (i = q>>3;i < q>>2;++i) y[i] = _mm256_set1_epi32(0x7fffffff);
sort.c:       |                                 ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sort.c: sort.c: In function 'merge16_finish':
sort.c: sort.c:55:13: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
sort.c:    55 | static void merge16_finish(int32 *x,int32x8 x0,int32x8 x1,int flagdown)
sort.c:       |             ^~~~~~~~~~~~~~
sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/immintrin.h:43,
sort.c:                  from sort.c:4:
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avxintrin.h: In function 'minmax_vector':
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avxintrin.h:933:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
sort.c:   933 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
sort.c:       | ^~~~~~~~~~~~~~~~~~~
sort.c: sort.c:10:28: note: called from here
sort.c:    10 | #define int32x8_store(z,i) _mm256_storeu_si256((__m256i *) (z),(i))
sort.c:       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sort.c: sort.c:38:5: note: in expansion of macro 'int32x8_store'
sort.c:    38 |     int32x8_store(y + n - 8,y0);
sort.c:       |     ^~~~~~~~~~~~~
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avxintrin.h:933:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
sort.c:   933 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
sort.c:       | ^~~~~~~~~~~~~~~~~~~
sort.c: sort.c:10:28: note: called from here
sort.c:    10 | #define int32x8_store(z,i) _mm256_storeu_si256((__m256i *) (z),(i))
sort.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
avx2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
avx2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
avx2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
avx2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


int32_sort.c: int32_sort.c:330:15: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'minmax8' that is compiled without support for 'avx'
int32_sort.c:   330 |   __m256i a = _mm256_loadu_si256((__m256i *) x);
int32_sort.c:       |               ^
int32_sort.c: int32_sort.c:330:15: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
int32_sort.c: int32_sort.c:331:15: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'minmax8' that is compiled without support for 'avx'
int32_sort.c:   331 |   __m256i b = _mm256_loadu_si256((__m256i *) y);
int32_sort.c:       |               ^
int32_sort.c: int32_sort.c:331:15: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
int32_sort.c: int32_sort.c:332:37: error: always_inline function '_mm256_min_epi32' requires target feature 'avx2', but would be inlined into function 'minmax8' that is compiled without support for 'avx2'
int32_sort.c:   332 |   _mm256_storeu_si256((__m256i *) x,_mm256_min_epi32(a,b));
int32_sort.c:       |                                     ^
int32_sort.c: int32_sort.c:332:37: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
int32_sort.c: int32_sort.c:332:3: error: always_inline function '_mm256_storeu_si256' requires target feature 'avx', but would be inlined into function 'minmax8' that is compiled without support for 'avx'
int32_sort.c:   332 |   _mm256_storeu_si256((__m256i *) x,_mm256_min_epi32(a,b));
int32_sort.c:       |   ^
int32_sort.c: int32_sort.c:332:3: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
int32_sort.c: int32_sort.c:333:37: error: always_inline function '_mm256_max_epi32' requires target feature 'avx2', but would be inlined into function 'minmax8' that is compiled without support for 'avx2'
int32_sort.c:   333 |   _mm256_storeu_si256((__m256i *) y,_mm256_max_epi32(a,b));
int32_sort.c:       |                                     ^
int32_sort.c: int32_sort.c:333:37: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
int32_sort.c: int32_sort.c:333:3: error: always_inline function '_mm256_storeu_si256' requires target feature 'avx', but would be inlined into function 'minmax8' that is compiled without support for 'avx'
int32_sort.c:   333 |   _mm256_storeu_si256((__m256i *) y,_mm256_max_epi32(a,b));
int32_sort.c:       |   ^
int32_sort.c: int32_sort.c:333:3: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
int32_sort.c: int32_sort.c:364:34: error: always_inline function '_mm_min_epi32' requires target feature 'sse4.1', but would be inlined into function 'minmax4' that is compiled without support for 'sse4.1'
int32_sort.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
oldavx2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
oldavx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
oldavx2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
oldavx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
oldavx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


int32_sort.c: int32_sort.c: In function 'minmax8':
int32_sort.c: int32_sort.c:330:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
int32_sort.c:   330 |   __m256i a = _mm256_loadu_si256((__m256i *) x);
int32_sort.c:       |           ^
int32_sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/immintrin.h:43,
int32_sort.c:                  from int32_sort.c:3:
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avxintrin.h: In function 'minmax02through1315':
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avxintrin.h:933:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
int32_sort.c:   933 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
int32_sort.c:       | ^~~~~~~~~~~~~~~~~~~
int32_sort.c: int32_sort.c:25:3: note: called from here
int32_sort.c:    25 |   _mm256_storeu_si256((__m256i *) (x + 8),b);
int32_sort.c:       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avxintrin.h:933:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
int32_sort.c:   933 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
int32_sort.c:       | ^~~~~~~~~~~~~~~~~~~
int32_sort.c: int32_sort.c:24:3: note: called from here
int32_sort.c:    24 |   _mm256_storeu_si256((__m256i *) x,a);
int32_sort.c:       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/immintrin.h:51:
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/avx2intrin.h:878:1: error: inlining failed in call to 'always_inline' '_mm256_unpackhi_epi64': target specific option mismatch
int32_sort.c:   878 | _mm256_unpackhi_epi64 (__m256i __A, __m256i __B)
int32_sort.c:       | ^~~~~~~~~~~~~~~~~~~~~
int32_sort.c: int32_sort.c:23:7: note: called from here
int32_sort.c:    23 |   b = _mm256_unpackhi_epi64(g,h);
int32_sort.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
oldavx2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
oldavx2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
oldavx2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
oldavx2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


api.cpp: api.cpp:22:42: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
api.cpp:    22 |   __attribute__((aligned(32))) int32_t y[n];
api.cpp:       |                                          ^
api.cpp: api.cpp:22:42: note: function parameter 'n' with unknown value cannot be used in a constant expression
api.cpp: api.cpp:8:40: note: declared here
api.cpp:     8 | void crypto_sort(void *array,long long n)
api.cpp:       |                                        ^
api.cpp: 1 warning generated.
merge_sort.cpp: merge_sort.cpp:162:7: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'initialize' that is compiled without support for 'avx'
merge_sort.cpp:   162 |       _mm256_load_si256((__m256i *) &load_store_mask[0]);
merge_sort.cpp:       |       ^
merge_sort.cpp: merge_sort.cpp:162:7: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
merge_sort.cpp: merge_sort.cpp:167:31: warning: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
merge_sort.cpp:   167 |   global_masks.rev_idx_mask = load_reg256(&rev_idx_mask[0]);
merge_sort.cpp:       |                               ^
merge_sort.cpp: merge_sort.cpp:168:27: warning: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
merge_sort.cpp:   168 |   global_masks.swap_128 = load_reg256(&swap_128[0]);
merge_sort.cpp:       |                           ^
merge_sort.cpp: 2 warnings and 2 errors generated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:sid1607clang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sid1607clang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sid1607clang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sid1607clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


api.cpp: In file included from api.cpp:3:
api.cpp: merge_sort.h: In function '__m256i load_reg256(int*)':
api.cpp: merge_sort.h:17:34: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
api.cpp:    17 | inline __m256i load_reg256(int *a) {
api.cpp:       |                                  ^
merge_sort.cpp: In file included from merge_sort.cpp:1:
merge_sort.cpp: merge_sort.h: In function '__m256i load_reg256(int*)':
merge_sort.cpp: merge_sort.h:17:34: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
merge_sort.cpp:    17 | inline __m256i load_reg256(int *a) {
merge_sort.cpp:       |                                  ^
merge_sort.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/immintrin.h:51,
merge_sort.cpp:                  from merge_sort.h:1:
merge_sort.cpp: /usr/lib/gcc/x86_64-linux-gnu/13/include/avx2intrin.h: In function '__m256i reverse(__m256i&)':
merge_sort.cpp: /usr/lib/gcc/x86_64-linux-gnu/13/include/avx2intrin.h:1044:1: error: inlining failed in call to 'always_inline' '__m256i _mm256_permutevar8x32_epi32(__m256i, __m256i)': target specific option mismatch
merge_sort.cpp:  1044 | _mm256_permutevar8x32_epi32 (__m256i __X, __m256i __Y)
merge_sort.cpp:       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
merge_sort.cpp: merge_sort.cpp:11:37: note: called from here
merge_sort.cpp:    11 |   return _mm256_permutevar8x32_epi32(v, global_masks.rev_idx_mask);
merge_sort.cpp:       |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:sid1607g++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:sid1607g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:sid1607g++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:sid1607g++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall

Compiler output


sort.c: sort.c:132:99: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'int32_sort_8through16' that is compiled without support for 'ssse3'
sort.c:   132 |   x2 = int8x16_iftopthenelse(int32x4_smaller_mask(int32x4_set(8,9,10,11),int32x4_broadcast(pos2)),int8x16_varextract(int32x4_load(x+pos2-4),int8x16_sub(int8x16_set(16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31),int8x16_broadcast(4*(pos2&3)))),infty); // 2 6 10 14
sort.c:       |                                                                                                   ^
sort.c: sort.c:44:28: note: expanded from macro 'int8x16_varextract'
sort.c:    44 | #define int8x16_varextract _mm_shuffle_epi8
sort.c:       |                            ^
sort.c: sort.c:132:8: error: always_inline function '_mm_blendv_epi8' requires target feature 'sse4.1', but would be inlined into function 'int32_sort_8through16' that is compiled without support for 'sse4.1'
sort.c:   132 |   x2 = int8x16_iftopthenelse(int32x4_smaller_mask(int32x4_set(8,9,10,11),int32x4_broadcast(pos2)),int8x16_varextract(int32x4_load(x+pos2-4),int8x16_sub(int8x16_set(16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31),int8x16_broadcast(4*(pos2&3)))),infty); // 2 6 10 14
sort.c:       |        ^
sort.c: sort.c:23:38: note: expanded from macro 'int8x16_iftopthenelse'
sort.c:    23 | #define int8x16_iftopthenelse(c,t,e) _mm_blendv_epi8(e,t,c)
sort.c:       |                                      ^
sort.c: sort.c:134:101: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'int32_sort_8through16' that is compiled without support for 'ssse3'
sort.c:   134 |   x3 = int8x16_iftopthenelse(int32x4_smaller_mask(int32x4_set(12,13,14,15),int32x4_broadcast(pos3)),int8x16_varextract(int32x4_load(x+pos3-4),int8x16_sub(int8x16_set(16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31),int8x16_broadcast(4*(pos3&3)))),infty); // 3 7 11 15
sort.c:       |                                                                                                     ^
sort.c: sort.c:44:28: note: expanded from macro 'int8x16_varextract'
sort.c:    44 | #define int8x16_varextract _mm_shuffle_epi8
sort.c:       |                            ^
sort.c: sort.c:134:8: error: always_inline function '_mm_blendv_epi8' requires target feature 'sse4.1', but would be inlined into function 'int32_sort_8through16' that is compiled without support for 'sse4.1'
sort.c:   134 |   x3 = int8x16_iftopthenelse(int32x4_smaller_mask(int32x4_set(12,13,14,15),int32x4_broadcast(pos3)),int8x16_varextract(int32x4_load(x+pos3-4),int8x16_sub(int8x16_set(16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31),int8x16_broadcast(4*(pos3&3)))),infty); // 3 7 11 15
sort.c:       |        ^
sort.c: sort.c:23:38: note: expanded from macro 'int8x16_iftopthenelse'
sort.c:    23 | #define int8x16_iftopthenelse(c,t,e) _mm_blendv_epi8(e,t,c)
sort.c:       |                                      ^
sort.c: sort.c:136:8: error: always_inline function '_mm_min_epi32' requires target feature 'sse4.1', but would be inlined into function 'int32_sort_8through16' that is compiled without support for 'sse4.1'
sort.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
sse42clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
sse42clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
sse42clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
sse42clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
sse42clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/immintrin.h:37,
sort.c:                  from sort.c:4:
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/tmmintrin.h: In function 'int32_sort_8through16':
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
sort.c:   136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
sort.c:       | ^~~~~~~~~~~~~~~~
sort.c: sort.c:18:28: note: called from here
sort.c:    18 | #define int32x4_store(z,i) _mm_storeu_si128((__m128i *) (z),(i))
sort.c:       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sort.c: sort.c:218:3: note: in expansion of macro 'int32x4_store'
sort.c:   218 |   int32x4_store(x+pos2-4,int8x16_varextract(y3,int8x16_add(int8x16_set(16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31),int8x16_broadcast(4*(pos2&3)))));
sort.c:       |   ^~~~~~~~~~~~~
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
sort.c:   136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
sort.c:       | ^~~~~~~~~~~~~~~~
sort.c: sort.c:18:28: note: called from here
sort.c:    18 | #define int32x4_store(z,i) _mm_storeu_si128((__m128i *) (z),(i))
sort.c:       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sort.c: sort.c:217:3: note: in expansion of macro 'int32x4_store'
sort.c:   217 |   int32x4_store(x+pos3-4,int8x16_varextract(y0,int8x16_add(int8x16_set(16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31),int8x16_broadcast(4*(pos3&3)))));
sort.c:       |   ^~~~~~~~~~~~~
sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/immintrin.h:39:
sort.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/smmintrin.h:191:1: error: inlining failed in call to 'always_inline' '_mm_blend_ps': target specific option mismatch
sort.c:   191 | _mm_blend_ps (__m128 __X, __m128 __Y, const int __M)
sort.c:       | ^~~~~~~~~~~~
sort.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
sse42gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
sse42gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
sse42gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
sse42gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: unused function 'stq_sort' [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: 1 warning generated.
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: unused function 'stq_sort' [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: 1 warning generated.
measure.cpp: In file included from measure-anything.cpp:19:
measure.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: unused function 'stq_sort' [-Wunused-function]
measure.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
measure.cpp:       |             ^~~~~~~~
measure.cpp: 1 warning generated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:stdsortclang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:stdsortclang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:stdsortclang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:stdsortclang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: 'void stq_sort(std::vector<double>, long long int)' defined but not used [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
try.cpp: In file included from try-anything.cpp:22:
try.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: 'void stq_sort(std::vector<double>, long long int)' defined but not used [-Wunused-function]
try.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
try.cpp:       |             ^~~~~~~~
measure.cpp: In file included from measure-anything.cpp:19:
measure.cpp: .../supercop-data/h3neo/amd64/include/stq.h:32:13: warning: 'void stq_sort(std::vector<double>, long long int)' defined but not used [-Wunused-function]
measure.cpp:    32 | static void stq_sort(stq_doublearray S,long long n)
measure.cpp:       |             ^~~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:stdsortg++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:stdsortg++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:stdsortg++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:stdsortg++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall

Passed TIMECOP


TIMECOP iterations: 10

Number of similar (implementation,compiler) pairs: 54, namely:
ImplementationCompiler
compactclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
compactclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
compactclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
compactclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
compactclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
compactgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
compactgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
compactgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
compactgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable3clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable3clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable3clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable3clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable3clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable3gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable3gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable3gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable3gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable4clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable4clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable4clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable4clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable4clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable4gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable4gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable4gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable4gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable5clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable5clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable5clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable5clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable5clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
portable5gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable5gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable5gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
portable5gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
x86clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x86clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x86clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x86clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x86clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x86gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
x86gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
x86gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
x86gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
x863clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x863clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x863clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x863clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x863clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
x863gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
x863gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
x863gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
x863gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)