Implementation notes: amd64, hydra6, crypto_sign/3icp

Computer: hydra6
Architecture: amd64
CPU ID: AuthenticAMD-00600f12-178bfbff
SUPERCOP version: 20171218
Operation: crypto_sign
Primitive: 3icp
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
439698? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017111320171020
450079? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017111320171020
478584? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017111320171020
520249? ? ?? ? ?refg++_-m64_-march=corei7_-O3_-fomit-frame-pointer2017111320171020
533550? ? ?? ? ?refclang++_-O3_-fomit-frame-pointer_-Qunused-arguments2017111320171020
542496? ? ?? ? ?refg++_-m64_-march=core2_-O2_-fomit-frame-pointer2017111320171020
593595? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017111320171020
606803? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111320171020
613963? ? ?? ? ?refg++_-march=nocona_-O3_-fomit-frame-pointer2017111320171020
627497? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017111320171020
640068? ? ?? ? ?refg++_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111320171020
648576? ? ?? ? ?refg++_-m64_-march=corei7_-O2_-fomit-frame-pointer2017111320171020
660458? ? ?? ? ?refg++_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111320171020
665306? ? ?? ? ?refclang++_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111320171020
685749? ? ?? ? ?refclang++_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111320171020
689175? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017111320171020
713398? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017111320171020
722559? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111320171020
725063? ? ?? ? ?refg++_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111320171020
729560? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017111320171020
732178? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017111320171020
733124? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111320171020
737470? ? ?? ? ?refclang++_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111320171020
743409? ? ?? ? ?refg++_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111320171020
745742? ? ?? ? ?refg++_-march=barcelona_-O3_-fomit-frame-pointer2017111320171020
753388? ? ?? ? ?refg++_-m64_-O2_-fomit-frame-pointer2017111320171020
754592? ? ?? ? ?refg++_-m64_-march=k8_-O3_-fomit-frame-pointer2017111320171020
761621? ? ?? ? ?refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111320171020
771985? ? ?? ? ?refg++_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111320171020
804452? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017111320171020
807726? ? ?? ? ?refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111320171020
833724? ? ?? ? ?refg++_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111320171020
841210? ? ?? ? ?refg++_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111320171020
846711? ? ?? ? ?refg++_-m64_-march=core2_-O3_-fomit-frame-pointer2017111320171020
871822? ? ?? ? ?refg++_-m64_-march=k8_-O2_-fomit-frame-pointer2017111320171020
872612? ? ?? ? ?refg++_-march=nocona_-O2_-fomit-frame-pointer2017111320171020
885617? ? ?? ? ?refg++_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017111320171020
897118? ? ?? ? ?refg++_-m64_-O3_-fomit-frame-pointer2017111320171020
907832? ? ?? ? ?refg++_-m64_-march=nocona_-O_-fomit-frame-pointer2017111320171020
911706? ? ?? ? ?refg++_-march=k8_-O2_-fomit-frame-pointer2017111320171020
917055? ? ?? ? ?refg++_-march=nocona_-O_-fomit-frame-pointer2017111320171020
928896? ? ?? ? ?refg++_-march=barcelona_-O2_-fomit-frame-pointer2017111320171020
935286? ? ?? ? ?refg++_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017111320171020
948125? ? ?? ? ?refg++_-march=k8_-O3_-fomit-frame-pointer2017111320171020
954860? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017111320171020
965702? ? ?? ? ?refg++_-march=barcelona_-O_-fomit-frame-pointer2017111320171020
974296? ? ?? ? ?refg++_-O2_-fomit-frame-pointer2017111320171020
977836? ? ?? ? ?refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111320171020
978003? ? ?? ? ?refg++_-O3_-fomit-frame-pointer2017111320171020
1005116? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017111320171020
1020374? ? ?? ? ?refg++_-m64_-march=k8_-O_-fomit-frame-pointer2017111320171020
1034027? ? ?? ? ?refg++_-march=k8_-Os_-fomit-frame-pointer2017111320171020
1054126? ? ?? ? ?refg++_-m64_-march=core2_-Os_-fomit-frame-pointer2017111320171020
1056288? ? ?? ? ?refg++_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111320171020
1080142? ? ?? ? ?refg++_-m64_-march=corei7_-O_-fomit-frame-pointer2017111320171020
1090660? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017111320171020
1094731? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111320171020
1102014? ? ?? ? ?refg++_-m64_-march=core2_-O_-fomit-frame-pointer2017111320171020
1113630? ? ?? ? ?refg++_-m64_-O_-fomit-frame-pointer2017111320171020
1121325? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017111320171020
1133165? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017111320171020
1150002? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111320171020
1206198? ? ?? ? ?refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111320171020
1278354? ? ?? ? ?refg++_-O_-fomit-frame-pointer2017111320171020
1289370? ? ?? ? ?refg++_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111320171020
1302504? ? ?? ? ?refg++_-m64_-march=corei7_-Os_-fomit-frame-pointer2017111320171020
1327600? ? ?? ? ?refg++_-m64_-Os_-fomit-frame-pointer2017111320171020
1344200? ? ?? ? ?refg++_-march=barcelona_-Os_-fomit-frame-pointer2017111320171020
1344409? ? ?? ? ?refg++_-fno-schedule-insns_-O_-fomit-frame-pointer2017111320171020
1359616? ? ?? ? ?refg++_-Os_-fomit-frame-pointer2017111320171020
1359937? ? ?? ? ?refg++_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111320171020
1454060? ? ?? ? ?refg++_-march=k8_-O_-fomit-frame-pointer2017111320171020
1464644? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111320171020
1476387? ? ?? ? ?refg++_-m64_-march=k8_-Os_-fomit-frame-pointer2017111320171020
1490247? ? ?? ? ?refg++_-march=nocona_-Os_-fomit-frame-pointer2017111320171020
24123371? ? ?? ? ?refg++2017111320171020

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