Test results for amd64, h4atom, crypto_sort/int32

[Page version: 20251115 13:22:58]

Measurements for amd64, h4atom, crypto_sort Test results for amd64, h4atom, crypto_sort Test results for crypto_sort/int32
Computer: h4atom
Microarchitecture: amd64; Bonnell (106ca)
Architecture: amd64
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20250922
Operation: crypto_sort
Primitive: int32
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
566611333 0 012390 780 968T:radix256mlgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
566831333 0 013542 780 968T:radix256mlgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
573671781 0 013615 820 904T:radix256smlclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
573991781 0 014759 820 904T:radix256smlclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
576271797 0 012207 820 904T:radix256smlclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
578011195 0 014167 820 904T:radix256mlclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
578091195 0 013023 820 904T:radix256mlclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
578531195 0 011599 820 904T:radix256mlclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
581941676 0 011457 812 904T:radix256smlclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
585471128 0 010897 812 904T:radix256mlclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
642961053 0 010201 756 936T:radix256mlgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
663441889 0 018575 820 904T:radix256mlclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
681181649 0 012357 772 968T:radix256mlgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
693001973 0 013030 780 968T:radix256smlgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
693471973 0 014182 780 968T:radix256smlgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
720592849 0 019535 820 904T:radix256smlclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
765602411 0 013125 772 968T:radix256smlgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
776261602 0 010753 756 936T:radix256smlgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
910391456 0 012592 788 1000T:stdsortg++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
914751540 0 013824 788 1000T:stdsortg++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
920811332 0 011248 852 904T:stdsortclang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
95367728 0 011758 780 968T:herfgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
954381500 0 012014 860 904T:stdsortclang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
95483728 0 012910 780 968T:herfgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
958401199 0 012015 780 1000T:stdsortg++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
959231446 0 013390 860 904T:stdsortclang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
973761675 0 014774 860 904T:stdsortclang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
102460920 0 010147 764 968T:stdsortg++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
108262558 0 012367 820 904T:herfclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
108362558 0 013511 820 904T:herfclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
108505524 0 010273 812 904T:herfclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
108732482 0 09601 756 936T:herfgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
110251558 0 010943 820 904T:herfclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
116387976 0 017639 820 904T:herfclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
122762655 0 011341 772 968T:herfgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025092420250922
1862507917 0 017673 812 904x863clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
1872729139 0 020951 820 904x863clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
18814010629 0 023583 820 904x863clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
1923048692 0 019079 820 904x863clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
19745110053 0 020717 772 968x863gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
20762911320 0 023510 780 968x863gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
20931310648 0 021654 780 968x863gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
21660110595 0 027255 820 904x863clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
220098860 0 013823 820 904portable4clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
224039620 0 010377 812 904portable4clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
228651734 0 011127 820 904portable4clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
229416766 0 012583 820 904portable4clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
232147827 0 017495 820 904portable4clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
238616344 0 09473 756 936portable3gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
238627344 0 09473 756 936compactgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
244730809 0 011822 780 968portable4gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
245404809 0 013006 780 968portable4gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2506984244 0 013409 756 936x863gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
256851357 0 013311 820 904compactclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
256875357 0 013311 820 904portable3clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
257961353 0 017015 820 904compactclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
257964353 0 017015 820 904portable3clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
259296292 0 010041 812 904portable3clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
259314292 0 010041 812 904compactclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
266514353 0 010743 820 904compactclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
266522353 0 010743 820 904portable3clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
267478353 0 012167 820 904compactclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
267494353 0 012167 820 904portable3clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2677821541 0 014487 820 904x86clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2681851589 0 014551 820 904portable5clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
271651839 0 011493 772 968portable4gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
275261393 0 012590 780 968portable3gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
275432393 0 012590 780 968compactgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
275755393 0 011406 780 968compactgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
275855393 0 011406 780 968portable3gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2772741097 0 010193 756 936x86gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2778171146 0 010881 812 904x86clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2779531162 0 010913 812 904portable5clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2825961415 0 013215 820 904x86clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2826961447 0 013263 820 904portable5clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2934461383 0 011775 820 904portable5clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2934831383 0 011759 820 904x86clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2993691438 0 013630 780 968portable5gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2995011454 0 012462 780 968portable5gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2995931470 0 012478 780 968x86gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
2999781454 0 013646 780 968x86gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
309924412 0 011069 772 968compactgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
309932412 0 011069 772 968portable3gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
3222561592 0 018255 820 904portable5clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
3262611528 0 018175 820 904x86clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
3435581593 0 012261 772 968x86gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
3435891567 0 012229 772 968portable5gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
353671652 0 09793 756 936portable4gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415
4243281128 0 010257 756 936portable5gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2025082220250415

Test failure


error 132
Illegal instruction

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:krasnovclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
T:krasnovclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
T:krasnovclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
T:krasnovclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
T:krasnovclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
T:krasnovgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
T:krasnovgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
T:krasnovgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
T:krasnovgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.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: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h4atom/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 (Debian_Clang_19.1.7_(3+b1))

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: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h4atom/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 (Debian_Clang_19.1.7_(3+b1))

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: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h4atom/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 (Debian_Clang_19.1.7_(3+b1))

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: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h4atom/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 (Debian_Clang_19.1.7_(3+b1))

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:    48 |     internal::merger(array, size);
api.cpp:       |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
api.cpp: api.cpp:7:14:   required from here
api.cpp:     7 |   aspas::sort((int32_t *) x,n);
api.cpp:       |   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
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: ...
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h4atom/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/h4atom/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]+0xf5): 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/h4atom/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]+0x1ad): 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 (14.2.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:    48 |     internal::merger(array, size);
api.cpp:       |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
api.cpp: api.cpp:7:14:   required from here
api.cpp:     7 |   aspas::sort((int32_t *) x,n);
api.cpp:       |   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
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: ...
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h4atom/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/h4atom/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]+0xc9): 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/h4atom/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]+0x163): 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/h4atom/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]+0x20d): 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/h4atom/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]+0x2aa): 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 (14.2.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:    48 |     internal::merger(array, size);
api.cpp:       |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
api.cpp: api.cpp:7:14:   required from here
api.cpp:     7 |   aspas::sort((int32_t *) x,n);
api.cpp:       |   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
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: ...
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h4atom/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/h4atom/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]+0x169): 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/h4atom/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]+0x235): 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 (14.2.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:    48 |     internal::merger(array, size);
api.cpp:       |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
api.cpp: api.cpp:7:14:   required from here
api.cpp:     7 |   aspas::sort((int32_t *) x,n);
api.cpp:       |   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
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: ...
try.cpp: /usr/bin/ld: libcrypto_sort_int32.a(api.o): in function `void aspas::sort<int>(int*, unsigned int)':
try.cpp: .../supercop-data/h4atom/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/h4atom/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]+0x10e): 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/h4atom/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]+0x187): 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 (14.2.0)

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 (Debian_Clang_19.1.7_(3+b1))
avx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
avx2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
avx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
avx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))

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/14/include/immintrin.h:43,
sort.c:                  from sort.c:4:
sort.c: /usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h: In function 'int32_twostages_32':
sort.c: /usr/lib/gcc/x86_64-linux-gnu/14/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:116:7: note: in expansion of macro 'int32x8_store'
sort.c:   116 |       int32x8_store(&x[i+96],x3);
sort.c:       |       ^~~~~~~~~~~~~
sort.c: /usr/lib/gcc/x86_64-linux-gnu/14/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 (14.2.0)
avx2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
avx2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
avx2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.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 (Debian_Clang_19.1.7_(3+b1))
oldavx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
oldavx2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
oldavx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
oldavx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))

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/14/include/immintrin.h:43,
int32_sort.c:                  from int32_sort.c:3:
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/14/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:333:3: note: called from here
int32_sort.c:   333 |   _mm256_storeu_si256((__m256i *) y,_mm256_max_epi32(a,b));
int32_sort.c:       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/14/include/immintrin.h:53:
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/14/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:333:3: note: called from here
int32_sort.c:   333 |   _mm256_storeu_si256((__m256i *) y,_mm256_max_epi32(a,b));
int32_sort.c:       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: /usr/lib/gcc/x86_64-linux-gnu/14/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:332:3: note: called from here
int32_sort.c:   332 |   _mm256_storeu_si256((__m256i *) x,_mm256_min_epi32(a,b));
int32_sort.c:       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int32_sort.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
oldavx2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
oldavx2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
oldavx2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
oldavx2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.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 (Debian_Clang_19.1.7_(3+b1))
T:sid1607clang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
T:sid1607clang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
T:sid1607clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))

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/14/include/immintrin.h:53,
merge_sort.cpp:                  from merge_sort.h:1:
merge_sort.cpp: /usr/lib/gcc/x86_64-linux-gnu/14/include/avx2intrin.h: In function '__m256i reverse(__m256i&)':
merge_sort.cpp: /usr/lib/gcc/x86_64-linux-gnu/14/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 (14.2.0)
T:sid1607g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
T:sid1607g++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
T:sid1607g++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)

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 (Debian_Clang_19.1.7_(3+b1))
compactclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
compactclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
compactclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
compactclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
compactgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
compactgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
compactgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
compactgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable3clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable3clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable3clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable3clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable3clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable3gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable3gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable3gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable3gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable4clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable4clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable4clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable4clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable4clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable4gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable4gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable4gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable4gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable5clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable5clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable5clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable5clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable5clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
portable5gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable5gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable5gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
portable5gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
x86clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x86clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x86clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x86clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x86clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x86gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
x86gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
x86gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
x86gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
x863clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x863clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x863clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x863clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x863clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_19.1.7_(3+b1))
x863gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
x863gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
x863gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)
x863gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0)