Implementation notes: amd64, calvin, crypto_sign/3icp

Computer: calvin
Architecture: amd64
CPU ID: AuthenticAMD-00600f20-178bfbff
SUPERCOP version: 20171218
Operation: crypto_sign
Primitive: 3icp
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
458314? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017111520171020
496254? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017111520171020
497467? ? ?? ? ?refclang++_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111520171020
527557? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017111520171020
540260? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111520171020
557553? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111520171020
558292? ? ?? ? ?refg++_-m64_-march=core2_-O3_-fomit-frame-pointer2017111520171020
574041? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017111520171020
575877? ? ?? ? ?refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111520171020
578664? ? ?? ? ?refg++_-m64_-march=k8_-O2_-fomit-frame-pointer2017111520171020
583016? ? ?? ? ?refg++_-m64_-march=nocona_-O_-fomit-frame-pointer2017111520171020
607665? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017111520171020
610185? ? ?? ? ?refg++_-m64_-march=corei7_-O3_-fomit-frame-pointer2017111520171020
614034? ? ?? ? ?refg++_-m64_-march=corei7_-O2_-fomit-frame-pointer2017111520171020
629410? ? ?? ? ?refclang++_-O3_-fomit-frame-pointer_-Qunused-arguments2017111520171020
635854? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017111520171020
640184? ? ?? ? ?refg++_-m64_-march=core2_-O2_-fomit-frame-pointer2017111520171020
641374? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017111520171020
649498? ? ?? ? ?refg++_-march=barcelona_-O3_-fomit-frame-pointer2017111520171020
682706? ? ?? ? ?refclang++_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111520171020
695643? ? ?? ? ?refg++_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111520171020
706773? ? ?? ? ?refg++_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111520171020
709376? ? ?? ? ?refg++_-march=k8_-O3_-fomit-frame-pointer2017111520171020
719715? ? ?? ? ?refg++_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111520171020
751204? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017111520171020
757185? ? ?? ? ?refg++_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111520171020
771627? ? ?? ? ?refg++_-m64_-O2_-fomit-frame-pointer2017111520171020
774744? ? ?? ? ?refg++_-m64_-march=k8_-O3_-fomit-frame-pointer2017111520171020
779739? ? ?? ? ?refg++_-m64_-O3_-fomit-frame-pointer2017111520171020
780655? ? ?? ? ?refg++_-O2_-fomit-frame-pointer2017111520171020
785296? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017111520171020
787671? ? ?? ? ?refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111520171020
792298? ? ?? ? ?refg++_-march=barcelona_-O2_-fomit-frame-pointer2017111520171020
796533? ? ?? ? ?refg++_-march=nocona_-O2_-fomit-frame-pointer2017111520171020
798051? ? ?? ? ?refg++_-O3_-fomit-frame-pointer2017111520171020
801724? ? ?? ? ?refg++_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111520171020
816165? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017111520171020
824017? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111520171020
824472? ? ?? ? ?refg++_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111520171020
828682? ? ?? ? ?refg++_-m64_-O_-fomit-frame-pointer2017111520171020
836072? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017111520171020
838778? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111520171020
843443? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017111520171020
850507? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017111520171020
858154? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017111520171020
860611? ? ?? ? ?refg++_-m64_-march=core2_-Os_-fomit-frame-pointer2017111520171020
901017? ? ?? ? ?refg++_-m64_-march=k8_-O_-fomit-frame-pointer2017111520171020
912790? ? ?? ? ?refg++_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017111520171020
925811? ? ?? ? ?refg++_-march=k8_-O_-fomit-frame-pointer2017111520171020
971852? ? ?? ? ?refg++_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017111520171020
972090? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111520171020
973638? ? ?? ? ?refg++_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111520171020
978254? ? ?? ? ?refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111520171020
999750? ? ?? ? ?refg++_-O_-fomit-frame-pointer2017111520171020
1003659? ? ?? ? ?refg++_-m64_-march=corei7_-O_-fomit-frame-pointer2017111520171020
1007311? ? ?? ? ?refg++_-march=barcelona_-O_-fomit-frame-pointer2017111520171020
1008571? ? ?? ? ?refg++_-march=nocona_-Os_-fomit-frame-pointer2017111520171020
1019976? ? ?? ? ?refg++_-m64_-Os_-fomit-frame-pointer2017111520171020
1030776? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017111520171020
1034568? ? ?? ? ?refg++_-march=k8_-O2_-fomit-frame-pointer2017111520171020
1041754? ? ?? ? ?refg++_-march=nocona_-O_-fomit-frame-pointer2017111520171020
1057197? ? ?? ? ?refg++_-m64_-march=core2_-O_-fomit-frame-pointer2017111520171020
1075206? ? ?? ? ?refg++_-march=barcelona_-Os_-fomit-frame-pointer2017111520171020
1075897? ? ?? ? ?refclang++_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111520171020
1076459? ? ?? ? ?refg++_-march=nocona_-O3_-fomit-frame-pointer2017111520171020
1098574? ? ?? ? ?refg++_-fno-schedule-insns_-O_-fomit-frame-pointer2017111520171020
1113858? ? ?? ? ?refg++_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111520171020
1125387? ? ?? ? ?refg++_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111520171020
1139769? ? ?? ? ?refg++_-m64_-march=corei7_-Os_-fomit-frame-pointer2017111520171020
1163986? ? ?? ? ?refg++_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111520171020
1164832? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111520171020
1169998? ? ?? ? ?refg++_-march=k8_-Os_-fomit-frame-pointer2017111520171020
1184888? ? ?? ? ?refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111520171020
1300807? ? ?? ? ?refg++_-m64_-march=k8_-Os_-fomit-frame-pointer2017111520171020
1374887? ? ?? ? ?refg++_-Os_-fomit-frame-pointer2017111520171020
11178848? ? ?? ? ?refg++2017111520171020

Test failure

Implementation: crypto_sign/3icp/ref
Compiler: g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer
error 142
Alarm clock

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref

Test failure

Implementation: crypto_sign/3icp/ref
Compiler: g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -O -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/3icp/ref
Compiler: clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
ThreeIC_p-test.cpp: In file included from ThreeIC_p-test.cpp:16:
ThreeIC_p-test.cpp: In file included from ./ThreeIC_p.h:6:
ThreeIC_p-test.cpp: ./tower.h:364:9: error: argument to '__builtin_ia32_palignr128' must be a constant integer
ThreeIC_p-test.cpp: return _mm_alignr_epi8(a1, a0, i*2);
ThreeIC_p-test.cpp: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ThreeIC_p-test.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/tmmintrin.h:69:12: note: expanded from macro '_mm_alignr_epi8'
ThreeIC_p-test.cpp: (__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
ThreeIC_p-test.cpp: ^
ThreeIC_p-test.cpp: In file included from ThreeIC_p-test.cpp:16:
ThreeIC_p-test.cpp: In file included from ./ThreeIC_p.h:6:
ThreeIC_p-test.cpp: ./tower.h:364:9: error: cannot initialize return object of type '__m128i' (vector of 2 'long long' values) with an rvalue of type 'void'
ThreeIC_p-test.cpp: return _mm_alignr_epi8(a1, a0, i*2);
ThreeIC_p-test.cpp: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ThreeIC_p-test.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/tmmintrin.h:68:34: note: expanded from macro '_mm_alignr_epi8'
ThreeIC_p-test.cpp: #define _mm_alignr_epi8(a, b, n) __extension__ ({ \
ThreeIC_p-test.cpp: ^~~~~~~~~~~~~~~~~~
ThreeIC_p-test.cpp: 2 errors generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang++ -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref