Implementation notes: amd64, haswell, crypto_encrypt/mceliece

Computer: haswell
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20130419
Operation: crypto_encrypt
Primitive: mceliece
TimeImplementationCompilerBenchmark dateSUPERCOP version
1662454refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
1664492refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1667152refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
1675160refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2013060920130419
1677675refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2013060920130419
1679527refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
1683036refgcc -funroll-loops -O3 -fomit-frame-pointer2013060920130419
1683852refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2013060920130419
1706335refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1708914refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2013060920130419
1711381refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
1716763refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
1717224refgcc -march=nocona -O3 -fomit-frame-pointer2013060920130419
1717460refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2013060920130419
1721024refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1722420refgcc -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1728230refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2013060920130419
1732708refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
1738748refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2013060920130419
1741417refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1747368refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2013060920130419
1749004refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2013060920130419
1751906refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1752392refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1754220refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2013060920130419
1754668refgcc -march=k8 -O3 -fomit-frame-pointer2013060920130419
1764386refgcc -O3 -fomit-frame-pointer2013060920130419
1765263refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2013060920130419
1767396refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2013060920130419
1769097refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2013060920130419
1769488refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2013060920130419
1774772refgcc -O2 -fomit-frame-pointer2013060920130419
1780884refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2013060920130419
1781060refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2013060920130419
1782108refgcc -m64 -O3 -fomit-frame-pointer2013060920130419
1786544refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2013060920130419
1788924refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
1789264refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
1795928refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2013060920130419
1796636refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2013060920130419
1799900refgcc -march=k8 -O2 -fomit-frame-pointer2013060920130419
1804884refgcc -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1810142refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
1814700refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
1823604refgcc -funroll-loops -O2 -fomit-frame-pointer2013060920130419
1836794refgcc -funroll-loops -Os -fomit-frame-pointer2013060920130419
1841474refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2013060920130419
1842904refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
1848236refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2013060920130419
1856944refgcc -funroll-loops -O -fomit-frame-pointer2013060920130419
1858216refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
1859182refgcc -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
1861104refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
1861204refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
1861812refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2013060920130419
1865713refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2013060920130419
1868524refgcc -march=nocona -O2 -fomit-frame-pointer2013060920130419
1882224refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2013060920130419
1883352refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2013060920130419
1884324refgcc -Os -fomit-frame-pointer2013060920130419
1888712refgcc -march=barcelona -O -fomit-frame-pointer2013060920130419
1891536refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
1893804refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2013060920130419
1896592refgcc -funroll-loops -m64 -O -fomit-frame-pointer2013060920130419
1898772refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2013060920130419
1900840refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2013060920130419
1901120refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2013060920130419
1902216refgcc -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
1909312refgcc -march=k8 -Os -fomit-frame-pointer2013060920130419
1910624refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
1911712refgcc -m64 -O2 -fomit-frame-pointer2013060920130419
1912680refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
1913384refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2013060920130419
1913832refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2013060920130419
1919196refgcc -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
1919819refgcc -march=nocona -Os -fomit-frame-pointer2013060920130419
1923340refgcc -m64 -Os -fomit-frame-pointer2013060920130419
1925004refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2013060920130419
1929200refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
1937850refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2013060920130419
1943276refgcc -march=k8 -O -fomit-frame-pointer2013060920130419
1943424refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
1943920refgcc -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
1947764refgcc -m64 -march=core2 -O -fomit-frame-pointer2013060920130419
1947860refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2013060920130419
1952956refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2013060920130419
1953828refgcc -march=nocona -O -fomit-frame-pointer2013060920130419
1954468refgcc -m64 -march=corei7 -O -fomit-frame-pointer2013060920130419
1961158refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
1975836refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2013060920130419
1980766refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
1989948refgcc -march=barcelona -Os -fomit-frame-pointer2013060920130419
1992783refgcc -m64 -march=core2 -Os -fomit-frame-pointer2013060920130419
1995730refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2013060920130419
2002856refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2013060920130419
2008130refgcc -O -fomit-frame-pointer2013060920130419
2011494refgcc -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
2014502refgcc -m64 -O -fomit-frame-pointer2013060920130419
2069860refgcc -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
2151526refgcc -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
3928156refgcc -funroll-loops2013060920130419
3994204refgcc2013060920130419
4009260refcc2013060920130419

Compiler output

Implementation: crypto_encrypt/mceliece/ref
Compiler: clang -O3
misc.c: misc.c:6:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
misc.c: __inline int u8rnd() { char c; randombytes(&c,1); return 255 & (int) c; }
misc.c: ^~
misc.c: /home/krovetz/supercop-20130419/supercop-data/haswell/amd64/include/randombytes.h:4:40: note: passing argument to parameter here
misc.c: extern void randombytes(unsigned char *,unsigned long long);
misc.c: ^
misc.c: 1 warning generated.
try.c: crypto_encrypt_mceliece.a(keypair.o):keypair.c:function gop_supr: error: undefined reference to 'u8rnd'
try.c: crypto_encrypt_mceliece.a(keypair.o):keypair.c:function gop_supr: error: undefined reference to 'u8rnd'
try.c: crypto_encrypt_mceliece.a(keypair.o):keypair.c:function gop_supr: error: undefined reference to 'u8rnd'
try.c: crypto_encrypt_mceliece.a(keypair.o):keypair.c:function gop_supr: error: undefined reference to 'u8rnd'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 ref
clang -O3 -mavx ref