Implementation notes: amd64, hunsnivy, crypto_sort/int32

Computer: hunsnivy
Microarchitecture: amd64; Ivy Bridge+AES (306a9)
Architecture: amd64
CPU ID: GenuineIntel-000306a9-bfebfbff
SUPERCOP version: 20240107
Operation: crypto_sort
Primitive: int32
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
183882075 0 014576 812 888T:radix256mlclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
186532057 0 014504 812 888T:radix256mlclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
188641271 0 011518 804 888T:radix256mlclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
191722057 0 016176 812 888T:radix256mlclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
191811253 0 011768 780 952T:radix256mlgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
191891028 0 010259 756 920T:radix256mlgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
192651253 0 012744 780 952T:radix256mlgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
193781187 0 010950 804 888T:radix256mlclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
196293578 0 016040 812 888T:radix256smlclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
196343578 0 017712 812 888T:radix256smlclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
200133241 0 015752 812 888T:radix256smlclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
206541853 0 011638 804 888T:radix256smlclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
207342347 0 012606 804 888T:radix256smlclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
207911837 0 013336 780 952T:radix256smlgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
218441900 0 012127 772 952T:radix256smlgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
220151837 0 012360 780 952T:radix256smlgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
221881567 0 010811 756 920T:radix256smlgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
230311267 0 011487 772 952T:radix256mlgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
2469810141 8 525021 908 888T:aspasclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
247269280 8 522485 908 888T:aspasclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
257571268 0 011185 844 888T:stdsortclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
27430931 0 013368 812 888T:herfclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
27557931 0 015040 812 888T:herfclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
27874950 0 013440 812 888T:herfclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
28350551 0 011040 780 952T:herfgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
28356550 0 012016 780 952T:herfgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
29007486 0 09707 756 920T:herfgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
29060522 0 010278 804 888T:herfclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
292071746 0 014331 852 888T:stdsortclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
294991639 0 015891 852 888T:stdsortclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
31659913 0 010221 764 952T:stdsortg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
33959540 0 010743 772 952T:herfgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
395701347 0 012906 788 984T:stdsortg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
410101130 0 011433 780 984T:stdsortg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
419435636 8 516155 900 888T:aspasclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
494111312 0 011898 788 984T:stdsortg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
55814651 0 010894 804 888T:herfclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
692089242 0 020720 780 952x863gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
694227669 8 518915 900 888T:aspasclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
697688840 0 019336 780 952x863gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
717569430 0 019639 772 952x863gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
756225274 0 017792 812 888x863clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
765835274 0 019408 812 888x863clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
781595197 0 017656 812 888x863clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
787494042 0 013814 804 888x863clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
788324564 0 014846 804 888x863clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
805211267 0 012736 780 952x86gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
806001267 0 011760 780 952x86gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
814931183 0 010934 804 888x86clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
825841618 0 014112 812 888x86clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
828931375 0 011575 772 952x86gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
831121585 0 015696 812 888x86clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
841791073 0 010299 756 920x86gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
842931552 0 011798 804 888x86clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
843031441 0 013880 812 888x86clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
900423866 0 013115 756 920x863gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
980971584 0 013048 780 952portable4gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
999851281 0 013776 812 888portable4clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
1007261415 0 015520 812 888portable4clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
1018391367 0 013800 812 888portable4clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
1051082599 0 015088 812 888portable5clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
106310839 0 011336 780 952portable4gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
1066012858 0 016960 812 888portable5clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
1082762714 0 015144 812 888portable5clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
110584691 0 09907 756 920portable4gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
111041891 0 011126 804 888portable4clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
113391899 0 011095 772 952portable4gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
1150932244 0 013720 780 952portable5gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
116108421 0 010912 780 952compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122920231222
1166861491 0 011992 780 952portable5gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
116846413 0 011888 780 952compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122920231222
116932413 0 011888 780 952portable3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
116950413 0 010912 780 952portable3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
117584434 0 012928 812 888compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122920231222
117599917 0 015040 812 888compactclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122920231222
117738434 0 012928 812 888portable3clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
1178551728 0 011502 804 888portable5clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
118173885 0 015008 812 888portable3clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
1187221777 0 012022 804 888portable5clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
118903913 0 013384 812 888compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122920231222
119888430 0 010662 804 888portable3clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
1201771296 0 010507 756 920portable5gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
121596881 0 013352 812 888portable3clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
121736358 0 010118 804 888portable3clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
122106358 0 010118 804 888compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122920231222
124194349 0 09571 756 920portable3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
1245211591 0 011799 772 952portable5gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
124749438 0 010639 772 952portable3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
1387471068 0 010830 804 888portable4clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
1678373538 0 014473 844 888T:stdsortclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
183311394 0 09627 756 920compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122920231222
204395524 0 010727 772 952compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122920231222
205353522 0 010774 804 888compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122920231222

Test failure

Implementation: T:krasnov
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111

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

Compiler output

Implementation: T:aspas
Security model: timingleaks
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 T:aspas
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aspas
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aspas
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aspas

Compiler output

Implementation: T:aspas
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
api.cpp: In file included from sorter.h:123,
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' [-Wignored-attributes]
api.cpp: 95 | 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' [-Wignored-attributes]
api.cpp: 149 | 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' [-Wignored-attributes]
api.cpp: 317 | 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' [-Wignored-attributes]
api.cpp: 647 | 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' [-Wignored-attributes]
api.cpp: 701 | 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' [-Wignored-attributes]
api.cpp: 854 | 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' [-Wignored-attributes]
api.cpp: 1184 | 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 T:aspas
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aspas
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aspas
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aspas

Compiler output

Implementation: avx2
Security model: constbranchindex
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: constbranchindex
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 'avx', but would be inlined into function 'int32_sort' that is compiled without support for 'avx'
sort.c: 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: 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: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: #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: 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: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: #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 (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: constbranchindex
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/10/include/immintrin.h:53,
sort.c: from sort.c:4:
sort.c: sort.c: In function 'minmax_vector':
sort.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:363:1: error: inlining failed in call to 'always_inline' '_mm256_max_epi32': target specific option mismatch
sort.c: 363 | _mm256_max_epi32 (__m256i __A, __m256i __B)
sort.c: | ^~~~~~~~~~~~~~~~
sort.c: sort.c:12:21: note: called from here
sort.c: 12 | #define int32x8_max _mm256_max_epi32
sort.c: | ^
sort.c: sort.c:17:7: note: in expansion of macro 'int32x8_max'
sort.c: 17 | b = int32x8_max(a,b); \
sort.c: | ^~~~~~~~~~~
sort.c: sort.c:36:5: note: in expansion of macro 'int32x8_MINMAX'
sort.c: 36 | int32x8_MINMAX(x0,y0);
sort.c: | ^~~~~~~~~~~~~~
sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
sort.c: from sort.c:4:
sort.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:405:1: error: inlining failed in call to 'always_inline' '_mm256_min_epi32': target specific option mismatch
sort.c: 405 | _mm256_min_epi32 (__m256i __A, __m256i __B)
sort.c: | ^~~~~~~~~~~~~~~~
sort.c: sort.c:11:21: note: called from here
sort.c: 11 | #define int32x8_min _mm256_min_epi32
sort.c: | ^
sort.c: sort.c:16:15: note: in expansion of macro 'int32x8_min'
sort.c: 16 | int32x8 c = int32x8_min(a,b); \
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: T:herf
Security model: timingleaks
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 T:herf
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:herf
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:herf
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:herf
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:herf

Compiler output

Implementation: oldavx2
Security model: constbranchindex
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:32:15: error: '__builtin_ia32_pshufd256' needs target feature 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: constbranchindex
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 'avx', but would be inlined into function 'minmax8' that is compiled without support for 'avx'
int32_sort.c: __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: __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: _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: _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: _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: _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 (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: constbranchindex
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/10/include/immintrin.h:53,
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/10/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: | ^~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
int32_sort.c: from int32_sort.c:3:
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:906:1: error: inlining failed in call to 'always_inline' '_mm256_unpacklo_epi64': target specific option mismatch
int32_sort.c: 906 | _mm256_unpacklo_epi64 (__m256i __A, __m256i __B)
int32_sort.c: | ^~~~~~~~~~~~~~~~~~~~~
int32_sort.c: int32_sort.c:22:7: note: called from here
int32_sort.c: 22 | a = _mm256_unpacklo_epi64(g,h);
int32_sort.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
int32_sort.c: from int32_sort.c:3:
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:363:1: error: inlining failed in call to 'always_inline' '_mm256_max_epi32': target specific option mismatch
int32_sort.c: 363 | _mm256_max_epi32 (__m256i __A, __m256i __B)
int32_sort.c: | ^~~~~~~~~~~~~~~~
int32_sort.c: int32_sort.c:21:15: note: called from here
int32_sort.c: 21 | __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: T:sid1607
Security model: timingleaks
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:134:13: error: '__builtin_ia32_pblendd256' needs target feature avx2
merge_sort.cpp: auto a4 = _mm256_blend_epi32(mina, maxa, 0xf0);
merge_sort.cpp: ^
merge_sort.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx2intrin.h:750:12: note: expanded from macro '_mm256_blend_epi32'
merge_sort.cpp: (__m256i)__builtin_ia32_pblendd256((__v8si)(__m256i)(V1), \
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:135:13: error: '__builtin_ia32_pblendd256' needs target feature avx2
merge_sort.cpp: auto b4 = _mm256_blend_epi32(minb, maxb, 0xf0);
merge_sort.cpp: ^
merge_sort.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx2intrin.h:750:12: note: expanded from macro '_mm256_blend_epi32'
merge_sort.cpp: (__m256i)__builtin_ia32_pblendd256((__v8si)(__m256i)(V1), \
merge_sort.cpp: ^
merge_sort.cpp: merge_sort.cpp:138:15: error: '__builtin_ia32_pshufd256' needs target feature avx2
merge_sort.cpp: auto a4_1 = _mm256_shuffle_epi32(a4, 0x4e);
merge_sort.cpp: ^
merge_sort.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx2intrin.h:470:12: note: expanded from macro '_mm256_shuffle_epi32'
merge_sort.cpp: ...

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

Compiler output

Implementation: T:sid1607
Security model: timingleaks
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/10/include/immintrin.h:53,
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/10/include/avx2intrin.h: In function '__m256i reverse(__m256i&)':
merge_sort.cpp: /usr/lib/gcc/x86_64-linux-gnu/10/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: 1041 | _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 (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sid1607
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sid1607
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sid1607
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sid1607