Implementation notes: amd64, h9trinity, crypto_sort/int32

Computer: h9trinity
Architecture: amd64
CPU ID: AuthenticAMD-00610f01-178bfbff
SUPERCOP version: 20200618
Operation: crypto_sort
Primitive: int32
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
231671175 0 014049 776 752radix256mlclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
236121175 0 012481 776 752radix256mlclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
236721175 0 012481 776 752radix256mlclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
240983957 0 016166 776 808radix256mlgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
241706825 0 019054 776 808radix256smlgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020051020200510
242701945 0 013729 776 736radix256mlclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
244131089 0 09855 768 736radix256mlclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
244611357 0 011229 768 808radix256mlgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
247711706 0 010479 768 736radix256smlclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020051020200510
253652275 0 013593 776 752radix256smlclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020051020200510
254112275 0 015161 776 752radix256smlclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020051020200510
255583059 0 014849 776 736radix256smlclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020051020200510
260352275 0 013593 776 752radix256smlclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020051020200510
263511194 0 010233 752 776radix256mlgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
272121334 0 011269 768 808radix256mlgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
283042011 0 011957 768 808radix256smlgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020051020200510
316431824 0 010873 752 776radix256smlgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020051020200510
337752033 0 011909 768 808radix256smlgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020051020200510
760921291 0 011247 776 816stdsortg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
770141686 0 014696 816 744stdsortclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091120190910
777371647 0 013096 816 744stdsortclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091120190910
779421647 0 013096 816 744stdsortclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091120190910
803831782 0 014088 784 816stdsortg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
830671327 0 011359 776 816stdsortg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
831061178 0 010078 808 728stdsortclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091120190910
871139076 0 021270 776 808x863gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020052220200522
871628561 0 018413 768 808x863gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020052220200522
88859927 0 010051 760 784stdsortg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
910928660 0 018581 768 808x863gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020052220200522
1013004326 0 013079 768 736x863clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020052220200522
1056471658 0 014521 776 752x86clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
1057371674 0 013449 776 736x86clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
106077965 0 012737 776 736herfclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019102920191017
107220551 0 011841 776 752herfclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091120190910
107476551 0 011841 776 752herfclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091120190910
107686551 0 013409 776 752herfclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091120190910
1087111181 0 09927 768 736x86clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
110740592 0 012790 776 808herfgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
111951510 0 09247 768 736herfclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091120190910
1128523972 0 013025 752 776x863gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020052220200522
1132251292 0 011149 768 808x86gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1133091292 0 013494 776 808x86gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
118103625 0 010549 768 808herfgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1183201391 0 011309 768 808x86gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
118914614 0 010461 768 808herfgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1191541115 0 010145 752 776x86gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1193965642 0 018521 776 752x863clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020052220200522
1203675706 0 017497 776 736x863clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020052220200522
122147565 0 09585 752 776herfgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1230335467 0 016769 776 752x863clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020052220200522
1231435467 0 016769 776 752x863clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020052220200522
1524971398 0 013161 776 736portable4clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
1552893148 0 015342 776 808portable4gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1608942870 0 014633 776 736portable5clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
1617841479 0 014329 776 752portable4clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
164240669 0 09689 752 776portable4gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1651731261 0 012553 776 752portable4clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
1652801261 0 012553 776 752portable4clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
167222813 0 010661 768 808portable4gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1736992973 0 015833 776 752portable5clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
174502889 0 010813 768 808portable4gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1764361443 0 012729 776 752x86clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
1766051443 0 012729 776 752x86clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
176689725 0 09463 768 736portable4clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
1797421402 0 010151 768 736portable5clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
1835801466 0 011325 768 808portable5gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1841103807 0 016006 776 808portable5gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1857161285 0 010305 752 776portable5gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
1902831613 0 011533 768 808portable5gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
191301341 0 09079 768 736portable3clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
191763401 0 012169 776 736portable3clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
193167436 0 010357 768 808portable3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
193270425 0 010285 768 808portable3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
194577425 0 012630 776 808portable3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
200106921 0 013785 776 752portable3clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
205009886 0 012169 776 752portable3clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
206499886 0 012169 776 752portable3clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
207366339 0 09369 752 776portable3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
2171492621 0 013913 776 752portable5clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221
2172572621 0 013913 776 752portable5clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019122120191221

Test failure

Implementation: krasnov
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE krasnov
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE krasnov
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE krasnov
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE krasnov

Compiler output

Implementation: aspas
Security model: unknown
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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:187:17: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp: if (num & 1 == 1)
api.cpp: ^~~~~~~~
api.cpp: ./merger.tcc:187:17: note: place parentheses around the '==' expression to silence this warning
api.cpp: if (num & 1 == 1)
api.cpp: ^
api.cpp: ( )
api.cpp: ./merger.tcc:187:17: note: place parentheses around the & expression to evaluate it first
api.cpp: if (num & 1 == 1)
api.cpp: ^
api.cpp: ( )
api.cpp: ./merger.tcc:196:13: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
api.cpp: if(count&1==1)
api.cpp: ^~~~~
api.cpp: ./merger.tcc:196:13: note: place parentheses around the '==' expression to silence this warning
api.cpp: 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: if(count&1==1)
api.cpp: ^
api.cpp: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE aspas
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE aspas
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE aspas
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE aspas

Compiler output

Implementation: aspas
Security model: unknown
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
api.cpp: In file included from sorter.h:123:0,
api.cpp: from aspas.tcc:31,
api.cpp: from aspas.h:204,
api.cpp: from api.cpp:3:
api.cpp: sorter_avx.tcc:95:47: warning: ignoring attributes on template argument '__m256 {aka __vector(8) float}' [-Wignored-attributes]
api.cpp: typename std::enable_if<std::is_same<T, __m256>::value>::type
api.cpp: ^
api.cpp: sorter_avx.tcc:149:47: warning: ignoring attributes on template argument '__m256 {aka __vector(8) float}' [-Wignored-attributes]
api.cpp: typename std::enable_if<std::is_same<T, __m256>::value>::type
api.cpp: ^
api.cpp: sorter_avx.tcc:317:47: warning: ignoring attributes on template argument '__m256 {aka __vector(8) float}' [-Wignored-attributes]
api.cpp: typename std::enable_if<std::is_same<T, __m256>::value>::type
api.cpp: ^
api.cpp: sorter_avx.tcc:647:48: warning: ignoring attributes on template argument '__m256i {aka __vector(4) long long int}' [-Wignored-attributes]
api.cpp: typename std::enable_if<std::is_same<T, __m256i>::value>::type
api.cpp: ^
api.cpp: sorter_avx.tcc:701:48: warning: ignoring attributes on template argument '__m256i {aka __vector(4) long long int}' [-Wignored-attributes]
api.cpp: typename std::enable_if<std::is_same<T, __m256i>::value>::type
api.cpp: ^
api.cpp: sorter_avx.tcc:854:48: warning: ignoring attributes on template argument '__m256i {aka __vector(4) long long int}' [-Wignored-attributes]
api.cpp: typename std::enable_if<std::is_same<T, __m256i>::value>::type
api.cpp: ^
api.cpp: sorter_avx.tcc:1184:48: warning: ignoring attributes on template argument '__m256d {aka __vector(4) double}' [-Wignored-attributes]
api.cpp: typename std::enable_if<std::is_same<T, __m256d>::value>::type
api.cpp: ^
api.cpp: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE aspas
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE aspas
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE aspas
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE aspas

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sort.c: sort.c:960:9: error: always_inline function '_mm256_min_epi32' requires target feature 'avx2', but would be inlined into function 'int32_sort' that is compiled without support for 'avx2'
sort.c: int32x8_MINMAX(x0,x2);
sort.c: ^
sort.c: sort.c:16:15: note: expanded from macro 'int32x8_MINMAX'
sort.c: int32x8 c = int32x8_min(a,b); \
sort.c: ^
sort.c: sort.c:11:21: note: expanded from macro 'int32x8_min'
sort.c: #define int32x8_min _mm256_min_epi32
sort.c: ^
sort.c: sort.c:960:9: error: always_inline function '_mm256_max_epi32' requires target feature 'avx2', but would be inlined into function 'int32_sort' that is compiled without support for 'avx2'
sort.c: sort.c:17:7: note: expanded from macro 'int32x8_MINMAX'
sort.c: b = int32x8_max(a,b); \
sort.c: ^
sort.c: sort.c:12:21: note: expanded from macro 'int32x8_max'
sort.c: #define int32x8_max _mm256_max_epi32
sort.c: ^
sort.c: sort.c:961:9: error: always_inline function '_mm256_min_epi32' requires target feature 'avx2', but would be inlined into function 'int32_sort' that is compiled without support for 'avx2'
sort.c: int32x8_MINMAX(x1,x3);
sort.c: ^
sort.c: sort.c:16:15: note: expanded from macro 'int32x8_MINMAX'
sort.c: int32x8 c = int32x8_min(a,b); \
sort.c: ^
sort.c: sort.c:11:21: note: expanded from macro 'int32x8_min'
sort.c: #define int32x8_min _mm256_min_epi32
sort.c: ^
sort.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sort.c: sort.c:940:40: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'int32_sort' that is compiled without support for 'sse4.2'
sort.c: for (i = q>>3;i < q>>2;++i) y[i] = _mm256_set1_epi32(0x7fffffff);
sort.c: ^
sort.c: sort.c:956:22: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'int32_sort' that is compiled without support for 'sse4.2'
sort.c: int32x8 x0 = int32x8_load(&x[i]);
sort.c: ^
sort.c: sort.c:9:25: note: expanded from macro 'int32x8_load'
sort.c: #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 'sse4.2', but would be inlined into function 'int32_sort' that is compiled without support for 'sse4.2'
sort.c: int32x8 x1 = int32x8_load(&x[i+q]);
sort.c: ^
sort.c: sort.c:9:25: note: expanded from macro 'int32x8_load'
sort.c: #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 'sse4.2', but would be inlined into function 'int32_sort' that is compiled without support for 'sse4.2'
sort.c: int32x8 x2 = int32x8_load(&x[i+2*q]);
sort.c: ^
sort.c: sort.c:9:25: note: expanded from macro 'int32x8_load'
sort.c: #define int32x8_load(z) _mm256_loadu_si256((__m256i *) (z))
sort.c: ^
sort.c: sort.c:959:22: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'int32_sort' that is compiled without support for 'sse4.2'
sort.c: int32x8 x3 = int32x8_load(&x[i+3*q]);
sort.c: ^
sort.c: sort.c:9:25: note: expanded from macro 'int32x8_load'
sort.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
sort.c: from sort.c:4:
sort.c: sort.c: In function 'minmax_vector':
sort.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:363:1: error: inlining failed in call to always_inline '_mm256_max_epi32': target specific option mismatch
sort.c: _mm256_max_epi32 (__m256i __A, __m256i __B)
sort.c: ^~~~~~~~~~~~~~~~
sort.c: sort.c:17:5: note: called from here
sort.c: b = int32x8_max(a,b); \
sort.c: ^
sort.c: sort.c:36:5: note: in expansion of macro 'int32x8_MINMAX'
sort.c: int32x8_MINMAX(x0,y0);
sort.c: ^~~~~~~~~~~~~~
sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
sort.c: from sort.c:4:
sort.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:405:1: error: inlining failed in call to always_inline '_mm256_min_epi32': target specific option mismatch
sort.c: _mm256_min_epi32 (__m256i __A, __m256i __B)
sort.c: ^~~~~~~~~~~~~~~~
sort.c: sort.c:16:11: note: called from here
sort.c: int32x8 c = int32x8_min(a,b); \
sort.c: ^
sort.c: sort.c:36:5: note: in expansion of macro 'int32x8_MINMAX'
sort.c: int32x8_MINMAX(x0,y0);
sort.c: ^~~~~~~~~~~~~~
sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
sort.c: from sort.c:4:
sort.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2

Compiler output

Implementation: herf
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sort.c: sort.c:133:17: warning: passing 'int32 [n]' to parameter of type 'uint32 *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
sort.c: RadixSort11(x,y,n);
sort.c: ^
sort.c: sort.c:47:48: note: passing argument to parameter 'sort' here
sort.c: static void RadixSort11(uint32 *array, uint32 *sort, uint32 elements)
sort.c: ^
sort.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE herf
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE herf
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE herf
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE herf
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE herf

Compiler output

Implementation: krasnov
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:3:16: error: unknown token in expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: .set pivotALU, %ecx
qsort_AVX2_HSW_256bit_int.s: ^
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:3:16: error: missing expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: .set pivotALU, %ecx
qsort_AVX2_HSW_256bit_int.s: ^
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:5:10: error: unknown token in expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: .set A0, %ymm0
qsort_AVX2_HSW_256bit_int.s: ^
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:5:10: error: missing expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: .set A0, %ymm0
qsort_AVX2_HSW_256bit_int.s: ^
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:6:10: error: unknown token in expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: .set A1, %ymm1
qsort_AVX2_HSW_256bit_int.s: ^
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:6:10: error: missing expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: .set A1, %ymm1
qsort_AVX2_HSW_256bit_int.s: ^
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:7:10: error: unknown token in expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: .set A2, %ymm2
qsort_AVX2_HSW_256bit_int.s: ^
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:7:10: error: missing expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: .set A2, %ymm2
qsort_AVX2_HSW_256bit_int.s: ^
qsort_AVX2_HSW_256bit_int.s: qsort_AVX2_HSW_256bit_int.s:8:10: error: unknown token in expression in '.set' directive
qsort_AVX2_HSW_256bit_int.s: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE krasnov
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE krasnov
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE krasnov
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE krasnov
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE krasnov

Compiler output

Implementation: oldavx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: _mm256_storeu_si256((__m256i *) x,_mm256_min_epi32(a,b));
int32_sort.c: ^
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: _mm256_storeu_si256((__m256i *) y,_mm256_max_epi32(a,b));
int32_sort.c: ^
int32_sort.c: int32_sort.c:18:15: error: always_inline function '_mm256_unpacklo_epi64' requires target feature 'avx2', but would be inlined into function 'minmax02through1315' that is compiled without support for 'avx2'
int32_sort.c: __m256i c = _mm256_unpacklo_epi64(a,b); /* a01b01a45b45 */
int32_sort.c: ^
int32_sort.c: int32_sort.c:19:15: error: always_inline function '_mm256_unpackhi_epi64' requires target feature 'avx2', but would be inlined into function 'minmax02through1315' that is compiled without support for 'avx2'
int32_sort.c: __m256i d = _mm256_unpackhi_epi64(a,b); /* a23b23a67b67 */
int32_sort.c: ^
int32_sort.c: int32_sort.c:20:15: error: always_inline function '_mm256_min_epi32' requires target feature 'avx2', but would be inlined into function 'minmax02through1315' that is compiled without support for 'avx2'
int32_sort.c: __m256i g = _mm256_min_epi32(c,d);
int32_sort.c: ^
int32_sort.c: int32_sort.c:21:15: error: always_inline function '_mm256_max_epi32' requires target feature 'avx2', but would be inlined into function 'minmax02through1315' that is compiled without support for 'avx2'
int32_sort.c: __m256i h = _mm256_max_epi32(c,d);
int32_sort.c: ^
int32_sort.c: int32_sort.c:22:7: error: always_inline function '_mm256_unpacklo_epi64' requires target feature 'avx2', but would be inlined into function 'minmax02through1315' that is compiled without support for 'avx2'
int32_sort.c: a = _mm256_unpacklo_epi64(g,h);
int32_sort.c: ^
int32_sort.c: int32_sort.c:23:7: error: always_inline function '_mm256_unpackhi_epi64' requires target feature 'avx2', but would be inlined into function 'minmax02through1315' that is compiled without support for 'avx2'
int32_sort.c: b = _mm256_unpackhi_epi64(g,h);
int32_sort.c: ^
int32_sort.c: int32_sort.c:33:15: error: always_inline function '_mm256_cmpgt_epi32' requires target feature 'avx2', but would be inlined into function 'minmax02134657' that is compiled without support for 'avx2'
int32_sort.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE oldavx2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE oldavx2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE oldavx2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE oldavx2

Compiler output

Implementation: oldavx2
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
int32_sort.c: int32_sort.c:330:15: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'minmax8' that is compiled without support for 'sse4.2'
int32_sort.c: __m256i a = _mm256_loadu_si256((__m256i *) x);
int32_sort.c: ^
int32_sort.c: int32_sort.c:331:15: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'minmax8' that is compiled without support for 'sse4.2'
int32_sort.c: __m256i b = _mm256_loadu_si256((__m256i *) y);
int32_sort.c: ^
int32_sort.c: int32_sort.c:332:3: error: always_inline function '_mm256_storeu_si256' requires target feature 'sse4.2', but would be inlined into function 'minmax8' that is compiled without support for 'sse4.2'
int32_sort.c: _mm256_storeu_si256((__m256i *) x,_mm256_min_epi32(a,b));
int32_sort.c: ^
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: _mm256_storeu_si256((__m256i *) x,_mm256_min_epi32(a,b));
int32_sort.c: ^
int32_sort.c: int32_sort.c:333:3: error: always_inline function '_mm256_storeu_si256' requires target feature 'sse4.2', but would be inlined into function 'minmax8' that is compiled without support for 'sse4.2'
int32_sort.c: _mm256_storeu_si256((__m256i *) y,_mm256_max_epi32(a,b));
int32_sort.c: ^
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: _mm256_storeu_si256((__m256i *) y,_mm256_max_epi32(a,b));
int32_sort.c: ^
int32_sort.c: int32_sort.c:364:34: error: always_inline function '_mm_min_epi32' requires target feature 'ssse3', but would be inlined into function 'minmax4' that is compiled without support for 'ssse3'
int32_sort.c: _mm_storeu_si128((__m128i *) x,_mm_min_epi32(a,b));
int32_sort.c: ^
int32_sort.c: int32_sort.c:365:34: error: always_inline function '_mm_max_epi32' requires target feature 'ssse3', but would be inlined into function 'minmax4' that is compiled without support for 'ssse3'
int32_sort.c: _mm_storeu_si128((__m128i *) y,_mm_max_epi32(a,b));
int32_sort.c: ^
int32_sort.c: int32_sort.c:16:15: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'minmax02through1315' that is compiled without support for 'sse4.2'
int32_sort.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE oldavx2

Compiler output

Implementation: oldavx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
int32_sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
int32_sort.c: from int32_sort.c:3:
int32_sort.c: int32_sort.c: In function 'minmax02through1315':
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:878:1: error: inlining failed in call to always_inline '_mm256_unpackhi_epi64': target specific option mismatch
int32_sort.c: _mm256_unpackhi_epi64 (__m256i __A, __m256i __B)
int32_sort.c: ^~~~~~~~~~~~~~~~~~~~~
int32_sort.c: int32_sort.c:23:5: note: called from here
int32_sort.c: b = _mm256_unpackhi_epi64(g,h);
int32_sort.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
int32_sort.c: from int32_sort.c:3:
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:906:1: error: inlining failed in call to always_inline '_mm256_unpacklo_epi64': target specific option mismatch
int32_sort.c: _mm256_unpacklo_epi64 (__m256i __A, __m256i __B)
int32_sort.c: ^~~~~~~~~~~~~~~~~~~~~
int32_sort.c: int32_sort.c:22:5: note: called from here
int32_sort.c: a = _mm256_unpacklo_epi64(g,h);
int32_sort.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
int32_sort.c: from int32_sort.c:3:
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:363:1: error: inlining failed in call to always_inline '_mm256_max_epi32': target specific option mismatch
int32_sort.c: _mm256_max_epi32 (__m256i __A, __m256i __B)
int32_sort.c: ^~~~~~~~~~~~~~~~
int32_sort.c: int32_sort.c:21:11: note: called from here
int32_sort.c: __m256i h = _mm256_max_epi32(c,d);
int32_sort.c: ^
int32_sort.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE oldavx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE oldavx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE oldavx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE oldavx2

Compiler output

Implementation: sid1607
Security model: unknown
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
merge_sort.cpp: merge_sort.cpp:11:10: error: always_inline function '_mm256_permutevar8x32_epi32' requires target feature 'avx2', but would be inlined into function 'reverse' that is compiled without support for 'avx2'
merge_sort.cpp: return _mm256_permutevar8x32_epi32(v, global_masks.rev_idx_mask);
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:31:7: error: always_inline function '_mm256_min_epi32' requires target feature 'avx2', but would be inlined into function 'minmax' that is compiled without support for 'avx2'
merge_sort.cpp: a = _mm256_min_epi32(a, b);
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:32:7: error: always_inline function '_mm256_max_epi32' requires target feature 'avx2', but would be inlined into function 'minmax' that is compiled without support for 'avx2'
merge_sort.cpp: b = _mm256_max_epi32(t, b);
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:144:13: error: always_inline function '_mm256_unpacklo_epi64' requires target feature 'avx2', but would be inlined into function 'intra_register_sort' that is compiled without support for 'avx2'
merge_sort.cpp: auto a2 = _mm256_unpacklo_epi64(mina, maxa);
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:145:13: error: always_inline function '_mm256_unpacklo_epi64' requires target feature 'avx2', but would be inlined into function 'intra_register_sort' that is compiled without support for 'avx2'
merge_sort.cpp: auto b2 = _mm256_unpacklo_epi64(minb, maxb);
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:42:10: error: always_inline function '_mm256_permutevar8x32_epi32' requires target feature 'avx2', but would be inlined into function 'register_shuffle' that is compiled without support for 'avx2'
merge_sort.cpp: return _mm256_permutevar8x32_epi32(a, mask);
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:24:11: error: always_inline function '_mm256_min_epi32' requires target feature 'avx2', but would be inlined into function 'minmax' that is compiled without support for 'avx2'
merge_sort.cpp: minab = _mm256_min_epi32(a, b);
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:25:11: error: always_inline function '_mm256_max_epi32' requires target feature 'avx2', but would be inlined into function 'minmax' that is compiled without support for 'avx2'
merge_sort.cpp: maxab = _mm256_max_epi32(a, b);
merge_sort.cpp: ^
merge_sort.cpp: 8 errors generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sid1607
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sid1607
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sid1607
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sid1607

Compiler output

Implementation: sid1607
Security model: unknown
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
merge_sort.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
merge_sort.cpp: from merge_sort.h:1,
merge_sort.cpp: from merge_sort.cpp:1:
merge_sort.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function '__m256i reverse(__m256i&)':
merge_sort.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1041:1: error: inlining failed in call to always_inline '__m256i _mm256_permutevar8x32_epi32(__m256i, __m256i)': target specific option mismatch
merge_sort.cpp: _mm256_permutevar8x32_epi32 (__m256i __X, __m256i __Y)
merge_sort.cpp: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
merge_sort.cpp: merge_sort.cpp:11:66: note: called from here
merge_sort.cpp: return _mm256_permutevar8x32_epi32(v, global_masks.rev_idx_mask);
merge_sort.cpp: ^

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE sid1607
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE sid1607
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE sid1607
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE sid1607