Implementation notes: amd64, hydra2, crypto_sign/3icp

Computer: hydra2
Architecture: amd64
CPU ID: GenuineIntel-000206c2-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_sign
Primitive: 3icp
TimeImplementationCompilerBenchmark dateSUPERCOP version
499340refclang++ -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014072320140622
530236refg++ -fno-schedule-insns -O3 -fomit-frame-pointer2014072320140622
538840refclang++ -O3 -fomit-frame-pointer2014072320140622
551468refg++ -m64 -march=core2 -O3 -fomit-frame-pointer2014072320140622
555768refclang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer2014072320140622
566408refclang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101420141014
574464refclang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
624156refg++ -m64 -O3 -fomit-frame-pointer2014072320140622
637216refg++ -m64 -march=k8 -O3 -fomit-frame-pointer2014072320140622
645796refg++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014072320140622
698992refg++ -m64 -march=corei7 -O2 -fomit-frame-pointer2014072320140622
704928refg++ -m64 -march=corei7 -O -fomit-frame-pointer2014072320140622
714388refg++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014072320140622
726172refg++ -m64 -march=nocona -O2 -fomit-frame-pointer2014072320140622
735028refg++ -O3 -fomit-frame-pointer2014072320140622
738328refg++ -march=nocona -O2 -fomit-frame-pointer2014072320140622
751064refg++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014072320140622
755124refg++ -m64 -march=corei7 -O3 -fomit-frame-pointer2014072320140622
759008refg++ -m64 -march=core2 -O -fomit-frame-pointer2014072320140622
763632refg++ -march=barcelona -O3 -fomit-frame-pointer2014072320140622
777540refg++ -m64 -march=barcelona -O2 -fomit-frame-pointer2014072320140622
778364refg++ -march=barcelona -O2 -fomit-frame-pointer2014072320140622
788240refg++ -m64 -march=k8 -O -fomit-frame-pointer2014072320140622
792576refg++ -fno-schedule-insns -O2 -fomit-frame-pointer2014072320140622
793360refg++ -m64 -march=barcelona -O3 -fomit-frame-pointer2014072320140622
794056refg++ -march=nocona -O3 -fomit-frame-pointer2014072320140622
795944refg++ -O -fomit-frame-pointer2014072320140622
796288refg++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014072320140622
800776refg++ -m64 -march=core2 -O2 -fomit-frame-pointer2014072320140622
800832refg++ -march=nocona -O -fomit-frame-pointer2014072320140622
802400refg++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014072320140622
820292refg++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014072320140622
832280refg++ -m64 -march=nocona -O3 -fomit-frame-pointer2014072320140622
840112refg++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014072320140622
869804refg++ -march=barcelona -O -fomit-frame-pointer2014072320140622
869828refg++ -m64 -march=barcelona -O -fomit-frame-pointer2014072320140622
896548refg++ -march=k8 -O3 -fomit-frame-pointer2014072320140622
910700refg++ -march=k8 -O2 -fomit-frame-pointer2014072320140622
916008refg++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014072320140622
916016refg++ -m64 -march=k8 -O2 -fomit-frame-pointer2014072320140622
927592refg++ -m64 -march=nocona -O -fomit-frame-pointer2014072320140622
951160refg++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014072320140622
958076refg++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014072320140622
963276refg++ -fno-schedule-insns -O -fomit-frame-pointer2014072320140622
980796refg++ -march=k8 -O -fomit-frame-pointer2014072320140622
990832refg++ -m64 -O -fomit-frame-pointer2014072320140622
1017608refg++ -O2 -fomit-frame-pointer2014072320140622
1055576refg++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014072320140622
1096300refg++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014072320140622
1152792refg++ -m64 -march=native -mtune=native -O -fomit-frame-pointer2014072320140622
1210584refg++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014072320140622
1247308refg++ -m64 -O2 -fomit-frame-pointer2014072320140622
1297932refg++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014072320140622
1332876refg++ -m64 -Os -fomit-frame-pointer2014072320140622
1341184refg++ -m64 -march=core2 -Os -fomit-frame-pointer2014072320140622
1487204refg++ -m64 -march=corei7 -Os -fomit-frame-pointer2014072320140622
1535176refg++ -march=k8 -Os -fomit-frame-pointer2014072320140622
1572364refg++ -m64 -march=k8 -Os -fomit-frame-pointer2014072320140622
1644108refg++ -m64 -march=barcelona -Os -fomit-frame-pointer2014072320140622
1652932refg++ -march=nocona -Os -fomit-frame-pointer2014072320140622
1715184refg++ -m64 -march=nocona -Os -fomit-frame-pointer2014072320140622
1743716refg++ -march=barcelona -Os -fomit-frame-pointer2014072320140622
1854292refg++ -fno-schedule-insns -Os -fomit-frame-pointer2014072320140622
1881248refg++ -Os -fomit-frame-pointer2014072320140622
1945700refg++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014072320140622
9423256refg++2014072320140622

Compiler output

Implementation: crypto_sign/3icp/ref
Compiler: clang++ -O3 -fomit-frame-pointer
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/3icp/ref
Compiler: clang++ -O3 -fwrapv -march=native -fomit-frame-pointer
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/include/clang/3.0/include/tmmintrin.h:69:35: note: expanded from:
ThreeIC_p-test.cpp: #define _mm_alignr_epi8(a, b, n) (__builtin_ia32_palignr128((a), (b), (n)))
ThreeIC_p-test.cpp: ^ ~~~
ThreeIC_p-test.cpp: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=native -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/3icp/ref
Compiler: clang++ -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fpolly'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fvectorize'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
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/include/clang/3.0/include/tmmintrin.h:69:35: note: expanded from:
ThreeIC_p-test.cpp: #define _mm_alignr_epi8(a, b, n) (__builtin_ia32_palignr128((a), (b), (n)))
ThreeIC_p-test.cpp: ^ ~~~
ThreeIC_p-test.cpp: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/3icp/ref
Compiler: clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-mavx2'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-mpclmul'
usehash.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
usehash.cpp: clang: warning: argument unused during compilation: '-mavx2'
usehash.cpp: clang: warning: argument unused during compilation: '-mpclmul'
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/3icp/ref
Compiler: clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-mavx2'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-mpclmul'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fpolly'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fvectorize'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
usehash.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
usehash.cpp: clang: warning: argument unused during compilation: '-mavx2'
usehash.cpp: clang: warning: argument unused during compilation: '-mpclmul'
usehash.cpp: clang: warning: argument unused during compilation: '-fpolly'
usehash.cpp: clang: warning: argument unused during compilation: '-fvectorize'
usehash.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
usehash.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/3icp/ref
Compiler: clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-mavx2'
usehash.cpp: clang: warning: argument unused during compilation: '-mavx2'
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/3icp/ref
Compiler: clang++ -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-mavx2'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fpolly'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fvectorize'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
ThreeIC_p-test.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
usehash.cpp: clang: warning: argument unused during compilation: '-mavx2'
usehash.cpp: clang: warning: argument unused during compilation: '-fpolly'
usehash.cpp: clang: warning: argument unused during compilation: '-fvectorize'
usehash.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
usehash.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref