Implementation notes: amd64, skylake, crypto_aead/morus1280128v2

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: morus1280128v2
TimeImplementationCompilerBenchmark dateSUPERCOP version
4716avx2clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
4734avx2clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
4736avx2clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
4780avx2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
6204avx2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
6206avx2gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
6216avx2gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
6342avx2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
6344avx2gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
6348avx2gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
6582sse2clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
6588sse2clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
6592sse2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
6604sse2clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
6606sse2clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
6612sse2clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
6628avx2gcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
6636avx2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
6640avx2gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
6736avx2gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
6760avx2gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
6768avx2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
7296sse2clang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
7324sse2clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
7332sse2clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
7340sse2clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
8230sse2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
8248sse2gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
8250sse2gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
8274sse2gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
8288sse2gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
8378sse2gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
8380sse2gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
8382sse2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
8396sse2gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
8400sse2gcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
8404sse2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
8418sse2gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
8420sse2gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
8434sse2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
8440sse2gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
8442sse2gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
8472sse2gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
8476sse2gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
8478sse2gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
8492sse2gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
8578sse2gcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
8584sse2gcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
8586sse2gcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
8594sse2gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
8612sse2gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
8614sse2gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
8626sse2gcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
8646sse2gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
8650sse2gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
8650sse2gcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
8656sse2gcc -O3 -fomit-frame-pointer2016121620161026
8662sse2gcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
8662sse2gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
8666sse2gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
8668sse2gcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
8678sse2gcc -m64 -O3 -fomit-frame-pointer2016121620161026
8696sse2gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
8700sse2gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
8700sse2gcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
8708sse2gcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
8712sse2gcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
8714sse2gcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
8716sse2gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
8718sse2gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
8720sse2gcc -m64 -O2 -fomit-frame-pointer2016121620161026
8722sse2gcc -O2 -fomit-frame-pointer2016121620161026
8724sse2gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
8732sse2gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
8736sse2gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
8742sse2gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
8744sse2gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
8748sse2gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
8754sse2gcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
8754sse2gcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
8758sse2gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
8768sse2gcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
8768sse2gcc -march=barcelona -O -fomit-frame-pointer2016121620161026
8770sse2gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
8770sse2gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
8782sse2gcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
8784sse2gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
8786sse2gcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
8792sse2gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
8796sse2gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
8802sse2gcc -O -fomit-frame-pointer2016121620161026
8804sse2gcc -m64 -O -fomit-frame-pointer2016121620161026
8810sse2gcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
8816sse2gcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
8822sse2gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
8824sse2gcc -funroll-loops -O -fomit-frame-pointer2016121620161026
8834sse2gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
8838sse2gcc -march=k8 -O -fomit-frame-pointer2016121620161026
8846sse2gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
8846sse2gcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
8848sse2gcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
8856sse2gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
8884sse2gcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
8986sse2gcc -march=nocona -O -fomit-frame-pointer2016121620161026
9070sse2gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
9096sse2gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
9096sse2gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
9098sse2gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
9104sse2gcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
9104sse2gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
9114sse2gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
9116sse2gcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
10564refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
10572ref64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
10624refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
10626ref64gcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
10726ref64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
10732ref64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
10848refgcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
10852refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
10852ref64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
10894refgcc -m64 -O3 -fomit-frame-pointer2016121620161026
10900refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
10906ref64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
10908refgcc -O3 -fomit-frame-pointer2016121620161026
10912refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
10916ref64gcc -O3 -fomit-frame-pointer2016121620161026
10958ref64gcc -m64 -O3 -fomit-frame-pointer2016121620161026
10962ref64gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
10966refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
10966ref64gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
10996refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
11008ref64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
11010refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
11016refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
11020refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
11058ref64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
11058refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
11064ref64gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
11074refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
11076ref64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
11088ref64gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
11096refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
11106refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
11110refgcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
11110ref64gcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
11116refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
11118ref64gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
11130ref64gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
11134ref64gcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
11146refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
11182ref64gcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
11186refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
11196refgcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
11206ref64gcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
11206ref64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
11250ref64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
11266refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
11280ref64gcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
11284refgcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
11292refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
11310refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
11334ref64gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
11352refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
11474ref64gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
11554ref64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
12516sse2gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
12522sse2gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
12536sse2gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
12542sse2gcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
12550sse2gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
12604sse2gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
12646sse2gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
12656sse2gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
12692sse2gcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
13008sse2gcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
13012sse2gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
13018sse2gcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
13026sse2gcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
13026sse2gcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
13028sse2gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
13070sse2gcc -Os -fomit-frame-pointer2016121620161026
13074sse2gcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
13082sse2gcc -m64 -Os -fomit-frame-pointer2016121620161026
13084sse2gcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
13106sse2gcc -march=k8 -Os -fomit-frame-pointer2016121620161026
13130sse2gcc -march=nocona -Os -fomit-frame-pointer2016121620161026
13134sse2gcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
16662refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
16732ref64clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
16834refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
16838refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
16854ref64clang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
16866ref64clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
16892ref64clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
17330refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
17948refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
17950ref64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
17972ref64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
17974ref64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
17980ref64gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
17986ref64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
17994refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
17996refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
17996refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
18002refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
18004ref64gcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
18006refgcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
18006ref64gcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
18008ref64gcc -O -fomit-frame-pointer2016121620161026
18008ref64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
18010refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
18010ref64gcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
18016ref64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
18022refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
18022ref64gcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
18026ref64gcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
18028refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
18030ref64clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
18032ref64gcc -march=nocona -O -fomit-frame-pointer2016121620161026
18040refgcc -march=barcelona -O -fomit-frame-pointer2016121620161026
18042ref64gcc -funroll-loops -O -fomit-frame-pointer2016121620161026
18044ref64clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
18044ref64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
18044refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
18046refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
18046ref64gcc -march=barcelona -O -fomit-frame-pointer2016121620161026
18052refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
18052refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
18054ref64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
18054ref64gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
18058refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
18064refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
18070refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
18072ref64gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
18080refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
18080refgcc -march=nocona -O -fomit-frame-pointer2016121620161026
18082ref64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
18084ref64clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
18084refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
18086ref64gcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
18088ref64gcc -march=k8 -O -fomit-frame-pointer2016121620161026
18096ref64gcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
18102ref64gcc -m64 -O -fomit-frame-pointer2016121620161026
18106ref64gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
18110refgcc -funroll-loops -O -fomit-frame-pointer2016121620161026
18120refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
18120ref64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
18122refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
18132ref64gcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
18164refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
18184ref64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
18188refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
18198ref64gcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
18198refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
18226refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
18230refgcc -march=k8 -O -fomit-frame-pointer2016121620161026
18232refgcc -O -fomit-frame-pointer2016121620161026
18234ref64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
18238refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
18266refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
18286ref64gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
18290refgcc -m64 -O -fomit-frame-pointer2016121620161026
18294refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
18320refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
18320ref64gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
18322refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
18328refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
18344refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
18350ref64gcc -m64 -O2 -fomit-frame-pointer2016121620161026
18354ref64gcc -O2 -fomit-frame-pointer2016121620161026
18360ref64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
18372ref64gcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
18386refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
18394ref64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
18402ref64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
18402ref64gcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
18404refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
18426refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
18428ref64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
18432refgcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
18434ref64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
18438refgcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
18438refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
18442refgcc -m64 -O2 -fomit-frame-pointer2016121620161026
18448ref64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
18470ref64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
18478refgcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
18490ref64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
18502ref64gcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
18508ref64gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
18510refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
18512ref64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
18514refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
18524ref64gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
18532refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
18542refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
18550refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
18584refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
18588refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
18592ref64gcc -march=nocona -Os -fomit-frame-pointer2016121620161026
18598refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
18600refgcc -O2 -fomit-frame-pointer2016121620161026
18610refgcc -march=nocona -Os -fomit-frame-pointer2016121620161026
18614ref64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
18618ref64clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
18618ref64gcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
18620ref64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
18622ref64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
18634ref64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
18646ref64gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
18652refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
18666refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
18686refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
18690ref64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
18730refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
18750refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
18756refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
18776refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
18886refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
18890ref64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
18906ref64gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
18906ref64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
18928ref64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
18932ref64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
18942ref64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
18944refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
18946ref64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
18960ref64gcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
18960refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
18960ref64gcc -march=k8 -Os -fomit-frame-pointer2016121620161026
18962ref64gcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
18964ref64gcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
18968ref64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
18970refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
18972ref64gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
18972refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
18976ref64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
18976refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
18976refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
18978refgcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
18978refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
18984ref64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
18986refgcc -march=k8 -Os -fomit-frame-pointer2016121620161026
18990ref64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
18998refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
19002refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
19008refgcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
19014refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
19016ref64gcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
19034ref64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
19036ref64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
19038ref64gcc -Os -fomit-frame-pointer2016121620161026
19044refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
19046ref64gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
19048refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
19056ref64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
19062refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
19068ref64gcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
19078refgcc -Os -fomit-frame-pointer2016121620161026
19128refgcc -m64 -Os -fomit-frame-pointer2016121620161026
19128refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
19150ref64gcc -m64 -Os -fomit-frame-pointer2016121620161026
19160refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
19166refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
19174refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
22054ref64clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
22070refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
22292refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
22358ref64clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
66980ref64cc2016121620161026
67216refgcc2016121620161026
67638refgcc -funroll-loops2016121620161026
67738ref64gcc -funroll-loops2016121620161026
67858refcc2016121620161026
69366ref64gcc2016121620161026

Compiler output

Implementation: crypto_aead/morus1280128v2/avx2
Compiler: cc
encrypt.c: encrypt.c: In function 'morus_stateupdate':
encrypt.c: encrypt.c:50:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
encrypt.c: void morus_stateupdate(__m256i msgblk, __m256i *state)
encrypt.c: ^~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:52:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
encrypt.c: state[0] = XOR256(state[0], state[3]);
encrypt.c: ^
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:574:1: error: inlining failed in call to always_inline '_mm256_or_si256': target specific option mismatch
encrypt.c: _mm256_or_si256 (__m256i __A, __m256i __B)
encrypt.c: ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:25:27: note: called from here
encrypt.c: #define OR256(x,y) _mm256_or_si256((x),(y)) /*OR(x,y) = x | y, where x and y are two 256-bit word*/
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:36:27: note: in expansion of macro 'OR256'
encrypt.c: #define ROTL256(x,n) OR256( _mm256_slli_epi64((x), (n)), _mm256_srli_epi64((x),(64-n)) ) /*Rotate 4 64-bit unsigned integers in x to the left by n-bit positions*/
encrypt.c: ^~~~~
encrypt.c: encrypt.c:78:13: note: in expansion of macro 'ROTL256'
encrypt.c: state[4] = ROTL256(state[4], n5);
encrypt.c: ^~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:696:1: error: inlining failed in call to always_inline '_mm256_slli_epi64': target specific option mismatch
encrypt.c: _mm256_slli_epi64 (__m256i __A, int __B)
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
cc avx2
gcc avx2
gcc -funroll-loops avx2

Compiler output

Implementation: crypto_aead/morus1280128v2/sse2
Compiler: cc
try.c: crypto_aead_morus1280128v2.a(encrypt.o): In function `morus_initialization':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: crypto_aead_morus1280128v2.a(encrypt.o): In function `morus_initialization_key_256':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: crypto_aead_morus1280128v2.a(encrypt.o): In function `morus_tag_generation':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: crypto_aead_morus1280128v2.a(encrypt.o): In function `morus_tag_verification':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: crypto_aead_morus1280128v2.a(encrypt.o): In function `morus_enc_aut_partialblock':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: crypto_aead_morus1280128v2.a(encrypt.o):encrypt.c:(.text+0x...): more undefined references to `morus_stateupdate' follow
try.c: crypto_aead_morus1280128v2.a(encrypt.o): In function `crypto_aead_morus1280128v2_sse2_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: crypto_aead_morus1280128v2.a(encrypt.o): In function `crypto_aead_morus1280128v2_sse2_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_dec_aut_step'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
cc sse2
gcc sse2
gcc -funroll-loops sse2

Compiler output

Implementation: crypto_aead/morus1280128v2/avx2
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:52:13: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'morus_stateupdate' that is compiled without support for 'avx2'
encrypt.c: state[0] = XOR256(state[0], state[3]);
encrypt.c: ^
encrypt.c: encrypt.c:22:27: note: expanded from macro 'XOR256'
encrypt.c: #define XOR256(x,y) _mm256_xor_si256((x),(y)) /*XOR256(x,y) = x ^ y, where x and y are two 256-bit word*/
encrypt.c: ^
encrypt.c: encrypt.c:53:13: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'morus_stateupdate' that is compiled without support for 'avx2'
encrypt.c: state[0] = XOR256(state[0], AND256(state[1], state[2]));
encrypt.c: ^
encrypt.c: encrypt.c:22:27: note: expanded from macro 'XOR256'
encrypt.c: #define XOR256(x,y) _mm256_xor_si256((x),(y)) /*XOR256(x,y) = x ^ y, where x and y are two 256-bit word*/
encrypt.c: ^
encrypt.c: encrypt.c:53:30: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'morus_stateupdate' that is compiled without support for 'avx2'
encrypt.c: state[0] = XOR256(state[0], AND256(state[1], state[2]));
encrypt.c: ^
encrypt.c: encrypt.c:23:27: note: expanded from macro 'AND256'
encrypt.c: #define AND256(x,y) _mm256_and_si256((x),(y)) /*AND(x,y) = x & y, where x and y are two 256-bit word*/
encrypt.c: ^
encrypt.c: encrypt.c:54:13: error: always_inline function '_mm256_or_si256' requires target feature 'avx2', but would be inlined into function 'morus_stateupdate' that is compiled without support for 'avx2'
encrypt.c: state[0] = ROTL256(state[0], n1);
encrypt.c: ^
encrypt.c: encrypt.c:36:27: note: expanded from macro 'ROTL256'
encrypt.c: #define ROTL256(x,n) OR256( _mm256_slli_epi64((x), (n)), _mm256_srli_epi64((x),(64-n)) ) /*Rotate 4 64-bit unsigned integers in x to the left by n-bit positions*/
encrypt.c: ^
encrypt.c: encrypt.c:25:27: note: expanded from macro 'OR256'
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/morus1280128v2/avx2
Compiler: gcc -O2 -fomit-frame-pointer
encrypt.c: encrypt.c: In function 'morus_stateupdate':
encrypt.c: encrypt.c:50:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
encrypt.c: void morus_stateupdate(__m256i msgblk, __m256i *state)
encrypt.c: ^~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:52:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
encrypt.c: state[0] = XOR256(state[0], state[3]);
encrypt.c: ^
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: encrypt.c: In function 'morus_enc_aut_step':
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:1068:1: error: inlining failed in call to always_inline '_mm256_permute4x64_epi64': target specific option mismatch
encrypt.c: _mm256_permute4x64_epi64 (__m256i __X, const int __M)
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:38:27: note: called from here
encrypt.c: #define ROTL256_64(x) _mm256_permute4x64_epi64((x), _MM_SHUFFLE(2,1,0,3)) /*Rotate x by 64-bit positions to the left*/
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:204:13: note: in expansion of macro 'ROTL256_64'
encrypt.c: state[2] = ROTL256_64(state[2]);
encrypt.c: ^~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:574:1: error: inlining failed in call to always_inline '_mm256_or_si256': target specific option mismatch
encrypt.c: _mm256_or_si256 (__m256i __A, __m256i __B)
encrypt.c: ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:25:27: note: called from here
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 84, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer avx2
gcc -O3 -fomit-frame-pointer avx2
gcc -O -fomit-frame-pointer avx2
gcc -Os -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O2 -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O3 -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O -fomit-frame-pointer avx2
gcc -fno-schedule-insns -Os -fomit-frame-pointer avx2
gcc -funroll-loops -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -O -fomit-frame-pointer avx2
gcc -funroll-loops -Os -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer avx2
gcc -m64 -O2 -fomit-frame-pointer avx2
gcc -m64 -O3 -fomit-frame-pointer avx2
gcc -m64 -O -fomit-frame-pointer avx2
gcc -m64 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -Os -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O -fomit-frame-pointer avx2
gcc -m64 -march=k8 -Os -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O2 -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O3 -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O -fomit-frame-pointer avx2
gcc -m64 -march=nocona -Os -fomit-frame-pointer avx2
gcc -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -march=barcelona -O -fomit-frame-pointer avx2
gcc -march=barcelona -Os -fomit-frame-pointer avx2
gcc -march=k8 -O2 -fomit-frame-pointer avx2
gcc -march=k8 -O3 -fomit-frame-pointer avx2
gcc -march=k8 -O -fomit-frame-pointer avx2
gcc -march=k8 -Os -fomit-frame-pointer avx2
gcc -march=nocona -O2 -fomit-frame-pointer avx2
gcc -march=nocona -O3 -fomit-frame-pointer avx2
gcc -march=nocona -O -fomit-frame-pointer avx2
gcc -march=nocona -Os -fomit-frame-pointer avx2

Compiler output

Implementation: crypto_aead/morus1280128v2/avx2
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.c: encrypt.c: In function 'morus_stateupdate':
encrypt.c: encrypt.c:50:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
encrypt.c: void morus_stateupdate(__m256i msgblk, __m256i *state)
encrypt.c: ^~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:52:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
encrypt.c: state[0] = XOR256(state[0], state[3]);
encrypt.c: ^
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: encrypt.c: In function 'morus_enc_aut_step':
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:1068:1: error: inlining failed in call to always_inline '_mm256_permute4x64_epi64': target specific option mismatch
encrypt.c: _mm256_permute4x64_epi64 (__m256i __X, const int __M)
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:38:27: note: called from here
encrypt.c: #define ROTL256_64(x) _mm256_permute4x64_epi64((x), _MM_SHUFFLE(2,1,0,3)) /*Rotate x by 64-bit positions to the left*/
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:204:13: note: in expansion of macro 'ROTL256_64'
encrypt.c: state[2] = ROTL256_64(state[2]);
encrypt.c: ^~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:574:1: error: inlining failed in call to always_inline '_mm256_or_si256': target specific option mismatch
encrypt.c: _mm256_or_si256 (__m256i __A, __m256i __B)
encrypt.c: ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:25:27: note: called from here
encrypt.c: ...
encrypt.c: encrypt.c: In function 'morus_stateupdate':
encrypt.c: encrypt.c:50:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
encrypt.c: void morus_stateupdate(__m256i msgblk, __m256i *state)
encrypt.c: ^~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:52:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
encrypt.c: state[0] = XOR256(state[0], state[3]);
encrypt.c: ^
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: encrypt.c: In function 'morus_enc_aut_step':
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:1068:1: error: inlining failed in call to always_inline '_mm256_permute4x64_epi64': target specific option mismatch
encrypt.c: _mm256_permute4x64_epi64 (__m256i __X, const int __M)
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:38:27: note: called from here
encrypt.c: #define ROTL256_64(x) _mm256_permute4x64_epi64((x), _MM_SHUFFLE(2,1,0,3)) /*Rotate x by 64-bit positions to the left*/
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:204:13: note: in expansion of macro 'ROTL256_64'
encrypt.c: state[2] = ROTL256_64(state[2]);
encrypt.c: ^~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:574:1: error: inlining failed in call to always_inline '_mm256_or_si256': target specific option mismatch
encrypt.c: _mm256_or_si256 (__m256i __A, __m256i __B)
encrypt.c: ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:25:27: note: called from here
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/morus1280128v2/avx2
Compiler: gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: encrypt.c: In function 'morus_enc_aut_step':
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:1068:1: error: inlining failed in call to always_inline '_mm256_permute4x64_epi64': target specific option mismatch
encrypt.c: _mm256_permute4x64_epi64 (__m256i __X, const int __M)
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:38:27: note: called from here
encrypt.c: #define ROTL256_64(x) _mm256_permute4x64_epi64((x), _MM_SHUFFLE(2,1,0,3)) /*Rotate x by 64-bit positions to the left*/
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:204:13: note: in expansion of macro 'ROTL256_64'
encrypt.c: state[2] = ROTL256_64(state[2]);
encrypt.c: ^~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
encrypt.c: from encrypt.c:2:
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:574:1: error: inlining failed in call to always_inline '_mm256_or_si256': target specific option mismatch
encrypt.c: _mm256_or_si256 (__m256i __A, __m256i __B)
encrypt.c: ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:25:27: note: called from here
encrypt.c: #define OR256(x,y) _mm256_or_si256((x),(y)) /*OR(x,y) = x | y, where x and y are two 256-bit word*/
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:36:27: note: in expansion of macro 'OR256'
encrypt.c: #define ROTL256(x,n) OR256( _mm256_slli_epi64((x), (n)), _mm256_srli_epi64((x),(64-n)) ) /*Rotate 4 64-bit unsigned integers in x to the left by n-bit positions*/
encrypt.c: ^~~~~
encrypt.c: encrypt.c:203:13: note: in expansion of macro 'ROTL256'
encrypt.c: state[4] = ROTL256(state[4], n5);
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer avx2