Implementation notes: amd64, cryptothinkx, crypto_sign/3icp

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_sign
Primitive: 3icp
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
264033? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017021520170105
289563? ? ?? ? ?refg++_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017021520170105
306408? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017021520170105
325830? ? ?? ? ?refclang++_-O3_-fomit-frame-pointer_-Qunused-arguments2017021520170105
331311? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017021520170105
332994? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017021520170105
335160? ? ?? ? ?refg++_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017021520170105
336513? ? ?? ? ?refg++_-m64_-march=nocona_-O3_-fomit-frame-pointer2017021520170105
354729? ? ?? ? ?refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017021520170105
358323? ? ?? ? ?refg++_-m64_-march=core2_-O2_-fomit-frame-pointer2017021520170105
363519? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017021520170105
369000? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017021520170105
372138? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017021520170105
379578? ? ?? ? ?refg++_-m64_-march=corei7_-O3_-fomit-frame-pointer2017021520170105
383295? ? ?? ? ?refg++_-march=nocona_-Os_-fomit-frame-pointer2017021520170105
389979? ? ?? ? ?refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017021520170105
391332? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017021520170105
398529? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017021520170105
400704? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017021520170105
401820? ? ?? ? ?refg++_-m64_-march=corei7_-O_-fomit-frame-pointer2017021520170105
410310? ? ?? ? ?refg++_-m64_-O3_-fomit-frame-pointer2017021520170105
411045? ? ?? ? ?refg++_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021520170105
411552? ? ?? ? ?refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017021520170105
412098? ? ?? ? ?refg++_-m64_-march=core2_-O3_-fomit-frame-pointer2017021520170105
420912? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021520170105
422175? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017021520170105
426828? ? ?? ? ?refg++_-march=barcelona_-O2_-fomit-frame-pointer2017021520170105
433704? ? ?? ? ?refg++_-march=k8_-O2_-fomit-frame-pointer2017021520170105
434007? ? ?? ? ?refg++_-m64_-O_-fomit-frame-pointer2017021520170105
435243? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017021520170105
440292? ? ?? ? ?refg++_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021520170105
443169? ? ?? ? ?refclang++_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021520170105
444924? ? ?? ? ?refg++_-march=k8_-O_-fomit-frame-pointer2017021520170105
448912? ? ?? ? ?refg++_-fno-schedule-insns_-O2_-fomit-frame-pointer2017021520170105
451144? ? ?? ? ?refg++_-m64_-march=k8_-O2_-fomit-frame-pointer2017021520170105
451419? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017021520170105
452292? ? ?? ? ?refg++_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017021520170105
454629? ? ?? ? ?refg++_-fno-schedule-insns_-O3_-fomit-frame-pointer2017021520170105
463605? ? ?? ? ?refg++_-m64_-march=core2_-O_-fomit-frame-pointer2017021520170105
465411? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017021520170105
465597? ? ?? ? ?refg++_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021520170105
466272? ? ?? ? ?refg++_-march=nocona_-O3_-fomit-frame-pointer2017021520170105
468060? ? ?? ? ?refg++_-m64_-march=nocona_-O2_-fomit-frame-pointer2017021520170105
468825? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017021520170105
476157? ? ?? ? ?refg++_-m64_-march=nocona_-O_-fomit-frame-pointer2017021520170105
478563? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017021520170105
479220? ? ?? ? ?refg++_-m64_-march=corei7_-O2_-fomit-frame-pointer2017021520170105
480447? ? ?? ? ?refclang++_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021520170105
488220? ? ?? ? ?refg++_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017021520170105
488829? ? ?? ? ?refg++_-O2_-fomit-frame-pointer2017021520170105
496272? ? ?? ? ?refg++_-fno-schedule-insns_-O_-fomit-frame-pointer2017021520170105
498531? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017021520170105
500181? ? ?? ? ?refg++_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017021520170105
503778? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017021520170105
512436? ? ?? ? ?refg++_-m64_-march=corei7_-Os_-fomit-frame-pointer2017021520170105
512895? ? ?? ? ?refg++_-march=nocona_-O_-fomit-frame-pointer2017021520170105
517672? ? ?? ? ?refg++_-m64_-O2_-fomit-frame-pointer2017021520170105
538986? ? ?? ? ?refg++_-m64_-march=barcelona_-O_-fomit-frame-pointer2017021520170105
543966? ? ?? ? ?refg++_-O_-fomit-frame-pointer2017021520170105
563787? ? ?? ? ?refg++_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017021520170105
571299? ? ?? ? ?refg++_-m64_-march=core2_-Os_-fomit-frame-pointer2017021520170105
575544? ? ?? ? ?refg++_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017021520170105
582267? ? ?? ? ?refg++_-march=barcelona_-O3_-fomit-frame-pointer2017021520170105
586104? ? ?? ? ?refg++_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021520170105
589509? ? ?? ? ?refg++_-Os_-fomit-frame-pointer2017021520170105
594237? ? ?? ? ?refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017021520170105
598557? ? ?? ? ?refg++_-O3_-fomit-frame-pointer2017021520170105
600556? ? ?? ? ?refg++_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017021520170105
602577? ? ?? ? ?refg++_-m64_-march=k8_-O_-fomit-frame-pointer2017021520170105
605796? ? ?? ? ?refg++_-m64_-march=k8_-O3_-fomit-frame-pointer2017021520170105
615486? ? ?? ? ?refg++_-march=nocona_-O2_-fomit-frame-pointer2017021520170105
620508? ? ?? ? ?refg++_-m64_-march=nocona_-Os_-fomit-frame-pointer2017021520170105
627504? ? ?? ? ?refg++_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017021520170105
639291? ? ?? ? ?refg++_-march=barcelona_-O_-fomit-frame-pointer2017021520170105
644844? ? ?? ? ?refclang++_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017021520170105
660021? ? ?? ? ?refg++_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021520170105
682320? ? ?? ? ?refg++_-march=k8_-O3_-fomit-frame-pointer2017021520170105
714657? ? ?? ? ?refg++_-m64_-Os_-fomit-frame-pointer2017021520170105
727101? ? ?? ? ?refg++_-march=barcelona_-Os_-fomit-frame-pointer2017021520170105
730377? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017021520170105
742044? ? ?? ? ?refg++_-m64_-march=k8_-Os_-fomit-frame-pointer2017021520170105
817404? ? ?? ? ?refg++_-march=k8_-Os_-fomit-frame-pointer2017021520170105
1347480? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017021520170105
5299986? ? ?? ? ?refg++2017021520170105

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

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: 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: 2 errors generated.

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang++ -O3 -fwrapv -mavx2 -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