Implementation notes: amd64, skylake, crypto_aead/joltikneq8048v1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: joltikneq8048v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
93368vpermgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
93452vpermgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
93478vpermgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
93504vpermgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
93548vpermgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
93576vpermgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
93826vpermgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
94012vpermgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
94054vpermgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
94054vpermgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
94882vpermgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
95152vpermgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
212098vpermgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
212532vpermgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
212820vpermgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
212882vpermgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
212974vpermgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
213200vpermgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
213400vpermgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
213682vpermgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
214028vpermgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
214170vpermgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
215634vpermgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
215894vpermgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
215962vpermgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
216000vpermgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
216254vpermgcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
216384vpermclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
216552vpermgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
217538vpermclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
220482vpermgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
221218vpermgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
359012vpermgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
359574vpermgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
359596vpermgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
359842vpermgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
362230vpermgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
362390vpermgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
3559454refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
3560126refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
3563116refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
3565224refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
3566886refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
3567984refgcc -O3 -fomit-frame-pointer2016121620161026
3568228refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
3569152refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
3569308refgcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
3569658refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
3571298refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
3571474refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
3571676refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
3572458refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
3572550refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
3572860refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
3573292refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
3573428refgcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
3573520refgcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
3574502refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
3574530refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
3574910refgcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
3576036refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
3578346refgcc -m64 -O3 -fomit-frame-pointer2016121620161026
3578446refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
3580182refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
3583516refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
3687610refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
3687638refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
3731246refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
3757762refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
4002100refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
4020588refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
4062898refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
4066976refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
4067148refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
4070330refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
5306392refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
5315478refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
5411686refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
5425582refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
5445004refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
5445864refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
5453186refgcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
5454486refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
5455150refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
6006998refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
6014926refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
6026690refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
6841760refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
6842218refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
6882204refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
6891644refgcc -funroll-loops -O -fomit-frame-pointer2016121620161026
6927984refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
6951644refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
6953096refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
7314112refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
7315754refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
7347236refgcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
7348532refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
7378116refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
7392394refgcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
7393966refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
7394948refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
7395158refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
7402640refgcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
7404194refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
7438108refgcc -m64 -O2 -fomit-frame-pointer2016121620161026
7438472refgcc -O2 -fomit-frame-pointer2016121620161026
7438616refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
7586546refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
7587386refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
7588104refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
7588804refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
7601506refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
7604818refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
7779044refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
7782372refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
7785654refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
8489974refgcc -march=barcelona -O -fomit-frame-pointer2016121620161026
8498010refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
8815972refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
8880754refgcc -march=nocona -O -fomit-frame-pointer2016121620161026
9041232refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
9048984refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
9049614refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
9053566refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
9053692refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
9055352refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
9171628refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
9205080refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
9206368refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
9232456refgcc -march=nocona -Os -fomit-frame-pointer2016121620161026
9233672refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
9234294refgcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
9234514refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
9234826refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
9234836refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
9235718refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
9246468refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
9251780refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
9259338refgcc -march=k8 -Os -fomit-frame-pointer2016121620161026
9259452refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
9260214refgcc -m64 -Os -fomit-frame-pointer2016121620161026
9260528refgcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
9261092refgcc -march=k8 -O -fomit-frame-pointer2016121620161026
9263910refgcc -Os -fomit-frame-pointer2016121620161026
9270362refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
9270384refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
9270566refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
9273550refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
9275576refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
9278842refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
9316968refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
9323886refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
9744820refgcc -m64 -O -fomit-frame-pointer2016121620161026
9756966refgcc -O -fomit-frame-pointer2016121620161026
9757808refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
20918118refgcc -funroll-loops2016121620161026
20981382refgcc2016121620161026
21010080refcc2016121620161026

Test failure

Implementation: crypto_aead/joltikneq8048v1/vperm
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
error 111
crypto_aead_decrypt returns nonzero

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments vperm
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments vperm
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments vperm
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments vperm

Compiler output

Implementation: crypto_aead/joltikneq8048v1/vperm
Compiler: cc
joltik.c: joltik.c:29:3: error: #error "This implementation requires either SSSE3 or AVX2 instruction sets."
joltik.c: #error "This implementation requires either SSSE3 or AVX2 instruction sets."
joltik.c: ^~~~~

Number of similar (compiler,implementation) pairs: 71, namely:
CompilerImplementations
cc vperm
gcc vperm
gcc -O2 -fomit-frame-pointer vperm
gcc -O3 -fomit-frame-pointer vperm
gcc -O -fomit-frame-pointer vperm
gcc -Os -fomit-frame-pointer vperm
gcc -fno-schedule-insns -O2 -fomit-frame-pointer vperm
gcc -fno-schedule-insns -O3 -fomit-frame-pointer vperm
gcc -fno-schedule-insns -O -fomit-frame-pointer vperm
gcc -fno-schedule-insns -Os -fomit-frame-pointer vperm
gcc -funroll-loops vperm
gcc -funroll-loops -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -O -fomit-frame-pointer vperm
gcc -funroll-loops -Os -fomit-frame-pointer vperm
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer vperm
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -O -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -Os -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer vperm
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer vperm
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer vperm
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer vperm
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer vperm
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer vperm
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer vperm
gcc -m64 -O2 -fomit-frame-pointer vperm
gcc -m64 -O3 -fomit-frame-pointer vperm
gcc -m64 -O -fomit-frame-pointer vperm
gcc -m64 -Os -fomit-frame-pointer vperm
gcc -m64 -march=k8 -O2 -fomit-frame-pointer vperm
gcc -m64 -march=k8 -O3 -fomit-frame-pointer vperm
gcc -m64 -march=k8 -O -fomit-frame-pointer vperm
gcc -m64 -march=k8 -Os -fomit-frame-pointer vperm
gcc -m64 -march=nocona -O2 -fomit-frame-pointer vperm
gcc -m64 -march=nocona -O3 -fomit-frame-pointer vperm
gcc -m64 -march=nocona -O -fomit-frame-pointer vperm
gcc -m64 -march=nocona -Os -fomit-frame-pointer vperm
gcc -march=barcelona -O2 -fomit-frame-pointer vperm
gcc -march=barcelona -O3 -fomit-frame-pointer vperm
gcc -march=barcelona -O -fomit-frame-pointer vperm
gcc -march=barcelona -Os -fomit-frame-pointer vperm
gcc -march=k8 -O2 -fomit-frame-pointer vperm
gcc -march=k8 -O3 -fomit-frame-pointer vperm
gcc -march=k8 -O -fomit-frame-pointer vperm
gcc -march=k8 -Os -fomit-frame-pointer vperm
gcc -march=nocona -O2 -fomit-frame-pointer vperm
gcc -march=nocona -O3 -fomit-frame-pointer vperm
gcc -march=nocona -O -fomit-frame-pointer vperm
gcc -march=nocona -Os -fomit-frame-pointer vperm

Compiler output

Implementation: crypto_aead/joltikneq8048v1/vperm
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
joltik.c: joltik.c:29:3: error: "This implementation requires either SSSE3 or AVX2 instruction sets."
joltik.c: #error "This implementation requires either SSSE3 or AVX2 instruction sets."
joltik.c: ^
joltik.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments vperm
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments vperm
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments vperm
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments vperm

Compiler output

Implementation: crypto_aead/joltikneq8048v1/vperm
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
joltik.c: joltik.c:29:3: error: #error "This implementation requires either SSSE3 or AVX2 instruction sets."
joltik.c: #error "This implementation requires either SSSE3 or AVX2 instruction sets."
joltik.c: ^~~~~
joltik.c: joltik.c:29:3: error: #error "This implementation requires either SSSE3 or AVX2 instruction sets."
joltik.c: #error "This implementation requires either SSSE3 or AVX2 instruction sets."
joltik.c: ^~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer vperm
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer vperm
gcc -m64 -march=barcelona -O -fomit-frame-pointer vperm
gcc -m64 -march=barcelona -Os -fomit-frame-pointer vperm