Implementation notes: amd64, haswell, crypto_stream/cryptmtv3

Computer: haswell
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20130419
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
6111e/v3gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
6119e/v3gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2013060920130419
6180e/v3gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2013060920130419
6184e/v3gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
6232e/v3gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2013060920130419
6240e/v3gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
6320e/v3gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2013060920130419
6343e/v3gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
6344e/v3gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2013060920130419
6348e/v3gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
6420e/v3gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2013060920130419
6446e/v3gcc -funroll-loops -m64 -O -fomit-frame-pointer2013060920130419
6500e/v3gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2013060920130419
6504e/v3clang -O32013060920130419
6520e/v3gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2013060920130419
6524e/v3clang -O3 -mavx2013060920130419
6540e/v3gcc -O2 -fomit-frame-pointer2013060920130419
6558e/v3gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
6584e/v3gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2013060920130419
6604e/v3gcc -funroll-loops -O3 -fomit-frame-pointer2013060920130419
6612e/v3gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2013060920130419
6658e/v3gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
6670e/v3gcc -funroll-loops -O2 -fomit-frame-pointer2013060920130419
6670e/v3gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
6688e/v3gcc -funroll-loops -O -fomit-frame-pointer2013060920130419
6695e/v3gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2013060920130419
6707e/v3gcc -m64 -O3 -fomit-frame-pointer2013060920130419
6712e/v3gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2013060920130419
6802e/v3gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2013060920130419
6856e/v3gcc -march=barcelona -O -fomit-frame-pointer2013060920130419
6876e/v3gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
6920e/v3gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2013060920130419
6924e/v3gcc -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
6930e/v3gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2013060920130419
6948e/v3gcc -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
6952e/v3gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
6980e/v3gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2013060920130419
6980e/v3gcc -march=nocona -O -fomit-frame-pointer2013060920130419
6984e/v3gcc -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
6988e/v3gcc -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
6992e/v3gcc -march=k8 -O3 -fomit-frame-pointer2013060920130419
7004e/v3gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2013060920130419
7016e/v3gcc -march=k8 -O2 -fomit-frame-pointer2013060920130419
7044e/v3gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2013060920130419
7080e/v3gcc -m64 -O -fomit-frame-pointer2013060920130419
7179e/v3gcc -m64 -Os -fomit-frame-pointer2013060920130419
7180e/v3gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
7188e/v3gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2013060920130419
7224e/v3gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2013060920130419
7224e/v3gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2013060920130419
7234e/v3gcc -m64 -march=core2 -O3 -fomit-frame-pointer2013060920130419
7252e/v3gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
7252e/v3gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2013060920130419
7262e/v3gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
7262e/v3gcc -march=barcelona -O2 -fomit-frame-pointer2013060920130419
7278e/v3gcc -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
7280e/v3gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
7286e/v3gcc -m64 -O2 -fomit-frame-pointer2013060920130419
7288e/v3gcc -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
7358e/v3gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2013060920130419
7362e/v3gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2013060920130419
7362e/v3gcc -march=k8 -O -fomit-frame-pointer2013060920130419
7394e/v3gcc -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
7432e/v3gcc -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
7432e/v3gcc -march=k8 -Os -fomit-frame-pointer2013060920130419
7456e/v3gcc -march=nocona -Os -fomit-frame-pointer2013060920130419
7472e/v3gcc -march=barcelona -O3 -fomit-frame-pointer2013060920130419
7476e/v3gcc -march=nocona -O3 -fomit-frame-pointer2013060920130419
7492e/v3gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2013060920130419
7516e/v3gcc -O3 -fomit-frame-pointer2013060920130419
7516e/v3gcc -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
7516e/v3gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2013060920130419
7524e/v3gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2013060920130419
7556e/v3gcc -march=nocona -O2 -fomit-frame-pointer2013060920130419
7580e/v3gcc -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
7616e/v3gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2013060920130419
7636e/v3gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2013060920130419
7640e/v3gcc -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
7644e/v3gcc -m64 -march=core2 -O2 -fomit-frame-pointer2013060920130419
7644e/v3gcc -m64 -march=core2 -O -fomit-frame-pointer2013060920130419
7644e/v3gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2013060920130419
7652e/v3gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2013060920130419
7664e/v3gcc -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
7696e/v3gcc -funroll-loops -m64 -Os -fomit-frame-pointer2013060920130419
7708e/v3gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
7714e/v3gcc -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
7714e/v3gcc -march=barcelona -Os -fomit-frame-pointer2013060920130419
7726e/v3gcc -Os -fomit-frame-pointer2013060920130419
7726e/v3gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2013060920130419
7728e/v3gcc -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
7738e/v3gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2013060920130419
7938e/v3gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2013060920130419
7946e/v3gcc -O -fomit-frame-pointer2013060920130419
7979e/v3gcc -m64 -march=corei7 -O -fomit-frame-pointer2013060920130419
8004e/v3gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2013060920130419
8032e/v3gcc -m64 -march=core2 -Os -fomit-frame-pointer2013060920130419
8032e/v3gcc -m64 -march=corei7 -Os -fomit-frame-pointer2013060920130419
8048e/v3gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
8236e/v3gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
8316e/v3gcc -funroll-loops -Os -fomit-frame-pointer2013060920130419
8356e/v3gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2013060920130419
8667e/v3gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
50340e/v3cc2013060920130419
50764e/v3gcc -funroll-loops2013060920130419
52312e/v3gcc2013060920130419

Compiler output

Implementation: crypto_stream/cryptmtv3/e/v3
Compiler: clang -O3
cryptmt-v3.c: In file included from cryptmt-v3.c:1:
cryptmt-v3.c: ./e/cryptmt-v3.c:189:18: warning: array index 156 is past the end of the array (which contains 156 elements) [-Warray-bounds]
cryptmt-v3.c: do_recursion(ps->gt;sfmt[N], ps->gt;sfmt[POS1], ps->gt;sfmt[N - 1]);
cryptmt-v3.c: ^ ~
cryptmt-v3.c: ./e/cryptmt-v3.c:25:5: note: array 'sfmt' declared here
cryptmt-v3.c: u32 sfmt[N][4];
cryptmt-v3.c: ^
cryptmt-v3.c: ./e/cryptmt-v3.c:403:27: warning: 'memset' call operates on objects of type 'ECRYPT_ctx' while the size is based on a different type 'ECRYPT_ctx *' [-Wsizeof-pointer-memaccess]
cryptmt-v3.c: memset(ctx, 0, sizeof(ctx));
cryptmt-v3.c: ~~~ ^~~
cryptmt-v3.c: ./e/cryptmt-v3.c:403:27: note: did you mean to dereference the argument to 'sizeof' (and multiply it by the number of elements)?
cryptmt-v3.c: memset(ctx, 0, sizeof(ctx));
cryptmt-v3.c: ^~~
cryptmt-v3.c: 2 warnings generated.

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