Implementation notes: amd64, sandy, crypto_encrypt/mceliece

Computer: sandy
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20120908
Operation: crypto_encrypt
Primitive: mceliece
TimeImplementationCompilerBenchmark dateSUPERCOP version
1841160refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2012081620120812
1846408refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2012081620120812
1849064refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2012081620120812
1850584refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2012081620120812
1852744refgcc -funroll-loops -O3 -fomit-frame-pointer2012081620120812
1853824refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012081620120812
1855056refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012081620120812
1880720refgcc -march=k8 -O3 -fomit-frame-pointer2012081620120812
1881200refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2012081620120812
1886432refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2012081620120812
1889096refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2012081620120812
1890932refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2012081620120812
1892800refgcc -march=barcelona -O3 -fomit-frame-pointer2012081620120812
1894452refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2012081620120812
1897928refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2012081620120812
1898324refgcc -O3 -fomit-frame-pointer2012081620120812
1902656refgcc -m64 -O3 -fomit-frame-pointer2012081620120812
1905916refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012081620120812
1911336refgcc -march=nocona -O3 -fomit-frame-pointer2012081620120812
1914520refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012081620120812
1919116refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012081620120812
1920620refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2012081620120812
1920872refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2012081620120812
1925436refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2012081620120812
1927720refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2012081620120812
1931356refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012081620120812
1932508refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012081620120812
1932568refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2012081620120812
1934936refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2012081620120812
1938628refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012081620120812
1942064refgcc -funroll-loops -O2 -fomit-frame-pointer2012081620120812
1951440refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2012081620120812
1976960refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012081620120812
1984852refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2012081620120812
1987968refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2012081620120812
1988056refgcc -m64 -O2 -fomit-frame-pointer2012081620120812
1990056refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012081620120812
1991628refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2012081620120812
1997724refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2012081620120812
1998100refgcc -O2 -fomit-frame-pointer2012081620120812
2000464refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2012081620120812
2002096refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2012081620120812
2005636refgcc -march=barcelona -O2 -fomit-frame-pointer2012081620120812
2009432refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012081620120812
2013396refgcc -march=k8 -O2 -fomit-frame-pointer2012081620120812
2019436refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2012081620120812
2022796refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2012081620120812
2023804refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2012081620120812
2031360refgcc -march=nocona -O2 -fomit-frame-pointer2012081620120812
2035328refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012081620120812
2079072refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012081620120812
2084328refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012081620120812
2086136refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012081620120812
2090236refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2012081620120812
2091820refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012081620120812
2094324refgcc -funroll-loops -O -fomit-frame-pointer2012081620120812
2094376refgcc -funroll-loops -m64 -O -fomit-frame-pointer2012081620120812
2097232refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2012081620120812
2099152refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2012081620120812
2122760refgcc -march=nocona -O -fomit-frame-pointer2012081620120812
2128792refgcc -m64 -march=nocona -O -fomit-frame-pointer2012081620120812
2174124refgcc -fno-schedule-insns -O -fomit-frame-pointer2012081620120812
2178248refgcc -m64 -march=corei7 -O -fomit-frame-pointer2012081620120812
2179480refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2012081620120812
2181312refgcc -m64 -O -fomit-frame-pointer2012081620120812
2184092refgcc -m64 -march=core2 -O -fomit-frame-pointer2012081620120812
2187396refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2012081620120812
2188700refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012081620120812
2189272refgcc -O -fomit-frame-pointer2012081620120812
2191740refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012081620120812
2193864refgcc -march=k8 -O -fomit-frame-pointer2012081620120812
2197676refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012081620120812
2198972refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012081620120812
2204356refgcc -march=barcelona -Os -fomit-frame-pointer2012081620120812
2204952refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2012081620120812
2206916refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012081620120812
2207320refgcc -m64 -march=core2 -Os -fomit-frame-pointer2012081620120812
2209080refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012081620120812
2209788refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012081620120812
2210684refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2012081620120812
2210976refgcc -m64 -Os -fomit-frame-pointer2012081620120812
2213028refgcc -fno-schedule-insns -Os -fomit-frame-pointer2012081620120812
2213168refgcc -march=barcelona -O -fomit-frame-pointer2012081620120812
2214396refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012081620120812
2215620refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2012081620120812
2215824refgcc -m64 -march=k8 -O -fomit-frame-pointer2012081620120812
2216252refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2012081620120812
2217000refgcc -m64 -march=k8 -Os -fomit-frame-pointer2012081620120812
2217696refgcc -march=k8 -Os -fomit-frame-pointer2012081620120812
2218448refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012081620120812
2218652refgcc -Os -fomit-frame-pointer2012081620120812
2220192refgcc -funroll-loops -Os -fomit-frame-pointer2012081620120812
2223472refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012081620120812
2225356refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2012081620120812
2232320refgcc -march=nocona -Os -fomit-frame-pointer2012081620120812
2236712refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012081620120812
2239276refgcc -m64 -march=barcelona -O -fomit-frame-pointer2012081620120812
2246348refgcc -m64 -march=nocona -Os -fomit-frame-pointer2012081620120812
2249536refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012081620120812
2252040refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012081620120812
3914132refcc2012081620120812
3921716refgcc2012081620120812
3948140refgcc -funroll-loops2012081620120812

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-20120812/supercop-data/sandy/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