Implementation notes: x86, jos, crypto_aead/paeq64

Computer: jos
Architecture: x86
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: paeq64
TimeImplementationCompilerBenchmark dateSUPERCOP version
9206918refg++ -m32 -march=core2 -O3 -fomit-frame-pointer2014101620141014
9219390refg++ -m32 -march=barcelona -O3 -fomit-frame-pointer2014101620141014
9223928refg++ -m32 -march=k8 -O3 -fomit-frame-pointer2014101620141014
9239408refg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2014101620141014
9247538refg++ -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2014101620141014
9258600refg++ -m32 -march=athlon -O3 -fomit-frame-pointer2014101620141014
9262268refg++ -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014101620141014
9312622refg++ -m32 -march=prescott -O3 -fomit-frame-pointer2014101620141014
9328050refg++ -m32 -march=nocona -O3 -fomit-frame-pointer2014101620141014
9448350refg++ -m32 -march=pentium4 -O3 -fomit-frame-pointer2014101620141014
9726457refg++ -m32 -O3 -fomit-frame-pointer2014101620141014
9747825refg++ -m32 -march=k6-3 -O3 -fomit-frame-pointer2014101620141014
9793905refg++ -m32 -march=k6 -O3 -fomit-frame-pointer2014101620141014
9796125refg++ -m32 -march=k6-2 -O3 -fomit-frame-pointer2014101620141014
9919583refg++ -m32 -march=i386 -O3 -fomit-frame-pointer2014101620141014
10064902refg++ -m32 -march=pentium3 -O3 -fomit-frame-pointer2014101620141014
10071360refg++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer2014101620141014
10090215refg++ -m32 -march=pentium2 -O3 -fomit-frame-pointer2014101620141014
10112603refg++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2014101620141014
10163107refg++ -m32 -march=pentium -O3 -fomit-frame-pointer2014101620141014
10171718refg++ -m32 -march=i486 -O3 -fomit-frame-pointer2014101620141014
10287255refg++ -m32 -march=pentium-m -O3 -fomit-frame-pointer2014101620141014
13354650refg++ -m32 -march=k8 -O2 -fomit-frame-pointer2014101620141014
13459028refg++ -m32 -march=barcelona -O2 -fomit-frame-pointer2014101620141014
13536443refg++ -m32 -march=athlon -O2 -fomit-frame-pointer2014101620141014
13924118refg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2014101620141014
13927612refg++ -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014101620141014
13938870refg++ -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2014101620141014
13985055refg++ -m32 -march=core2 -O2 -fomit-frame-pointer2014101620141014
15373260refg++ -m32 -march=core2 -msse4 -O -fomit-frame-pointer2014101620141014
15373515refg++ -m32 -march=core2 -O -fomit-frame-pointer2014101620141014
15384862refg++ -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2014101620141014
15387713refg++ -m32 -march=native -mtune=native -O -fomit-frame-pointer2014101620141014
15457192refg++ -m32 -march=barcelona -O -fomit-frame-pointer2014101620141014
15539063refg++ -m32 -march=k8 -O -fomit-frame-pointer2014101620141014
15563617refg++ -m32 -march=athlon -O -fomit-frame-pointer2014101620141014
16194697refg++ -m32 -march=pentium4 -O2 -fomit-frame-pointer2014101620141014
17735295refg++ -m32 -march=pentium4 -O -fomit-frame-pointer2014101620141014
17954280refg++ -m32 -march=nocona -Os -fomit-frame-pointer2014101620141014
17988705refg++ -m32 -march=pentium4 -Os -fomit-frame-pointer2014101620141014
18082913refg++ -m32 -march=prescott -Os -fomit-frame-pointer2014101620141014
18465397refg++ -m32 -march=athlon -Os -fomit-frame-pointer2014101620141014
18489810refg++ -m32 -march=core2 -Os -fomit-frame-pointer2014101620141014
18491190refg++ -m32 -march=barcelona -Os -fomit-frame-pointer2014101620141014
18498532refg++ -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014101620141014
18513652refg++ -m32 -march=native -mtune=native -Os -fomit-frame-pointer2014101620141014
18557393refg++ -m32 -march=k8 -Os -fomit-frame-pointer2014101620141014
18567277refg++ -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2014101620141014
20039482refg++ -m32 -march=prescott -O2 -fomit-frame-pointer2014101620141014
20057430refg++ -m32 -march=nocona -O2 -fomit-frame-pointer2014101620141014
20844330refg++ -m32 -march=prescott -O -fomit-frame-pointer2014101620141014
20845245refg++ -m32 -march=nocona -O -fomit-frame-pointer2014101620141014
23110740refg++ -m32 -O2 -fomit-frame-pointer2014101620141014
24339345refg++ -m32 -march=i486 -O2 -fomit-frame-pointer2014101620141014
24813465refg++ -m32 -march=pentium3 -O -fomit-frame-pointer2014101620141014
24825862refg++ -m32 -march=pentium-m -O -fomit-frame-pointer2014101620141014
24831997refg++ -m32 -march=pentium2 -O -fomit-frame-pointer2014101620141014
24855330refg++ -m32 -march=pentiumpro -O -fomit-frame-pointer2014101620141014
24955650refg++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer2014101620141014
24967313refg++ -m32 -march=pentium2 -O2 -fomit-frame-pointer2014101620141014
25008525refg++ -m32 -march=pentium3 -O2 -fomit-frame-pointer2014101620141014
25013393refg++ -m32 -march=pentium-m -O2 -fomit-frame-pointer2014101620141014
25058730refg++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2014101620141014
25061310refg++ -m32 -march=pentium -O2 -fomit-frame-pointer2014101620141014
25564478refg++ -m32 -march=k6-2 -O2 -fomit-frame-pointer2014101620141014
25892947refg++ -m32 -march=i386 -O2 -fomit-frame-pointer2014101620141014
26170770refg++ -m32 -march=k6 -O2 -fomit-frame-pointer2014101620141014
26216812refg++ -m32 -march=k6-3 -O2 -fomit-frame-pointer2014101620141014
26479005refg++ -m32 -march=k6-2 -O -fomit-frame-pointer2014101620141014
26482807refg++ -m32 -march=k6-3 -O -fomit-frame-pointer2014101620141014
26509582refg++ -m32 -march=k6 -O -fomit-frame-pointer2014101620141014
26869747refg++ -m32 -march=i386 -O -fomit-frame-pointer2014101620141014
26881890refg++ -m32 -march=pentium -Os -fomit-frame-pointer2014101620141014
26903715refg++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer2014101620141014
26970157refg++ -m32 -O -fomit-frame-pointer2014101620141014
27346432refg++ -m32 -march=k6 -Os -fomit-frame-pointer2014101620141014
27357038refg++ -m32 -march=k6-2 -Os -fomit-frame-pointer2014101620141014
27365633refg++ -m32 -march=k6-3 -Os -fomit-frame-pointer2014101620141014
27738915refg++ -m32 -march=pentium-m -Os -fomit-frame-pointer2014101620141014
27747083refg++ -m32 -march=pentiumpro -Os -fomit-frame-pointer2014101620141014
27758858refg++ -m32 -march=pentium2 -Os -fomit-frame-pointer2014101620141014
27779858refg++ -m32 -march=pentium3 -Os -fomit-frame-pointer2014101620141014
27783788refg++ -m32 -Os -fomit-frame-pointer2014101620141014
27847935refg++ -m32 -march=i486 -Os -fomit-frame-pointer2014101620141014
27848985refg++ -m32 -march=i386 -Os -fomit-frame-pointer2014101620141014
29247157refg++ -m32 -march=pentium -O -fomit-frame-pointer2014101620141014
29291040refg++ -m32 -march=pentium-mmx -O -fomit-frame-pointer2014101620141014
29889480refg++ -m32 -march=i486 -O -fomit-frame-pointer2014101620141014

Compiler output

Implementation: crypto_aead/paeq64/aesni
Compiler: g++ -m32 -O2 -fomit-frame-pointer
encrypt.cpp: In file included from /usr/lib64/gcc/x86_64-suse-linux/4.5/include/wmmintrin.h:31:0,
encrypt.cpp: from encrypt.cpp:13:
encrypt.cpp: /usr/lib64/gcc/x86_64-suse-linux/4.5/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib64/gcc/x86_64-suse-linux/4.5/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.cpp: encrypt.cpp:140:27: error: '__m128i' does not name a type
encrypt.cpp: encrypt.cpp:140:36: error: ISO C++ forbids declaration of 'input1' with no type
encrypt.cpp: encrypt.cpp:140:50: error: '__m128i' does not name a type
encrypt.cpp: encrypt.cpp:140:59: error: ISO C++ forbids declaration of 'input2' with no type
encrypt.cpp: encrypt.cpp:140:67: error: '__m128i' has not been declared
encrypt.cpp: encrypt.cpp:140:85: error: '__m128i' has not been declared
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const int*, const int*, int*, int*)':
encrypt.cpp: encrypt.cpp:143:2: error: '__m128i' was not declared in this scope
encrypt.cpp: encrypt.cpp:143:10: error: expected ';' before 'roundkey0'
encrypt.cpp: encrypt.cpp:144:10: error: expected ';' before 'roundkey1'
encrypt.cpp: encrypt.cpp:145:10: error: expected ';' before 'roundkey2'
encrypt.cpp: encrypt.cpp:146:10: error: expected ';' before 'roundkey3'
encrypt.cpp: encrypt.cpp:147:10: error: expected ';' before 'roundkeyUpdateConstant'
encrypt.cpp: encrypt.cpp:149:10: error: expected ';' before 'acc0'
encrypt.cpp: encrypt.cpp:150:10: error: expected ';' before 'acc1'
encrypt.cpp: encrypt.cpp:151:10: error: expected ';' before 'acc2'
encrypt.cpp: encrypt.cpp:152:10: error: expected ';' before 'acc3'
encrypt.cpp: encrypt.cpp:154:10: error: expected ';' before 'acc4'
encrypt.cpp: encrypt.cpp:155:10: error: expected ';' before 'acc5'
encrypt.cpp: encrypt.cpp:156:10: error: expected ';' before 'acc6'
encrypt.cpp: ...

Number of similar (compiler,implementation) pairs: 48, namely:
CompilerImplementations
g++ -m32 -O2 -fomit-frame-pointer aesni
g++ -m32 -O3 -fomit-frame-pointer aesni
g++ -m32 -O -fomit-frame-pointer aesni
g++ -m32 -Os -fomit-frame-pointer aesni
g++ -m32 -march=athlon -O2 -fomit-frame-pointer aesni
g++ -m32 -march=athlon -O3 -fomit-frame-pointer aesni
g++ -m32 -march=athlon -O -fomit-frame-pointer aesni
g++ -m32 -march=athlon -Os -fomit-frame-pointer aesni
g++ -m32 -march=i386 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=i386 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=i386 -O -fomit-frame-pointer aesni
g++ -m32 -march=i386 -Os -fomit-frame-pointer aesni
g++ -m32 -march=i486 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=i486 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=i486 -O -fomit-frame-pointer aesni
g++ -m32 -march=i486 -Os -fomit-frame-pointer aesni
g++ -m32 -march=k6-2 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=k6-2 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=k6-2 -O -fomit-frame-pointer aesni
g++ -m32 -march=k6-2 -Os -fomit-frame-pointer aesni
g++ -m32 -march=k6-3 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=k6-3 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=k6-3 -O -fomit-frame-pointer aesni
g++ -m32 -march=k6-3 -Os -fomit-frame-pointer aesni
g++ -m32 -march=k6 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=k6 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=k6 -O -fomit-frame-pointer aesni
g++ -m32 -march=k6 -Os -fomit-frame-pointer aesni
g++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer aesni
g++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer aesni
g++ -m32 -march=pentium-mmx -O -fomit-frame-pointer aesni
g++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer aesni
g++ -m32 -march=pentium2 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=pentium2 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=pentium2 -O -fomit-frame-pointer aesni
g++ -m32 -march=pentium2 -Os -fomit-frame-pointer aesni
g++ -m32 -march=pentium3 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=pentium3 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=pentium3 -O -fomit-frame-pointer aesni
g++ -m32 -march=pentium3 -Os -fomit-frame-pointer aesni
g++ -m32 -march=pentium -O2 -fomit-frame-pointer aesni
g++ -m32 -march=pentium -O3 -fomit-frame-pointer aesni
g++ -m32 -march=pentium -O -fomit-frame-pointer aesni
g++ -m32 -march=pentium -Os -fomit-frame-pointer aesni
g++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer aesni
g++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer aesni
g++ -m32 -march=pentiumpro -O -fomit-frame-pointer aesni
g++ -m32 -march=pentiumpro -Os -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/paeq64/aesni
Compiler: g++ -m32 -march=barcelona -O2 -fomit-frame-pointer
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib64/gcc/x86_64-suse-linux/4.5/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const __vector(2) long long int*, const __vector(2) long long int*, __vector(2) long long int*, __vector(2) long long int*)':
encrypt.cpp: encrypt.cpp:166:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const __vector(2) long long int*, __vector(2) long long int*)':
encrypt.cpp: encrypt.cpp:240:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib64/gcc/x86_64-suse-linux/4.5/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const __vector(2) long long int*, const __vector(2) long long int*, __vector(2) long long int*, __vector(2) long long int*)':
encrypt.cpp: encrypt.cpp:166:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const __vector(2) long long int*, __vector(2) long long int*)':
encrypt.cpp: encrypt.cpp:240:43: error: '_mm_aesenc_si128' was not declared in this scope

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -m32 -march=barcelona -O2 -fomit-frame-pointer aesni
g++ -m32 -march=barcelona -O3 -fomit-frame-pointer aesni
g++ -m32 -march=barcelona -O -fomit-frame-pointer aesni
g++ -m32 -march=barcelona -Os -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/paeq64/aesni
Compiler: g++ -m32 -march=core2 -O2 -fomit-frame-pointer
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib64/gcc/x86_64-suse-linux/4.5/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const __vector(2) long long int*, const __vector(2) long long int*, __vector(2) long long int*, __vector(2) long long int*)':
encrypt.cpp: encrypt.cpp:166:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const __vector(2) long long int*, __vector(2) long long int*)':
encrypt.cpp: encrypt.cpp:240:43: error: '_mm_aesenc_si128' was not declared in this scope

Number of similar (compiler,implementation) pairs: 36, namely:
CompilerImplementations
g++ -m32 -march=core2 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=core2 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=core2 -O -fomit-frame-pointer aesni
g++ -m32 -march=core2 -Os -fomit-frame-pointer aesni
g++ -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer aesni
g++ -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer aesni
g++ -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=core2 -msse4 -O -fomit-frame-pointer aesni
g++ -m32 -march=core2 -msse4 -Os -fomit-frame-pointer aesni
g++ -m32 -march=k8 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=k8 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=k8 -O -fomit-frame-pointer aesni
g++ -m32 -march=k8 -Os -fomit-frame-pointer aesni
g++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer aesni
g++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer aesni
g++ -m32 -march=native -mtune=native -O -fomit-frame-pointer aesni
g++ -m32 -march=native -mtune=native -Os -fomit-frame-pointer aesni
g++ -m32 -march=nocona -O2 -fomit-frame-pointer aesni
g++ -m32 -march=nocona -O3 -fomit-frame-pointer aesni
g++ -m32 -march=nocona -O -fomit-frame-pointer aesni
g++ -m32 -march=nocona -Os -fomit-frame-pointer aesni
g++ -m32 -march=pentium-m -O2 -fomit-frame-pointer aesni
g++ -m32 -march=pentium-m -O3 -fomit-frame-pointer aesni
g++ -m32 -march=pentium-m -O -fomit-frame-pointer aesni
g++ -m32 -march=pentium-m -Os -fomit-frame-pointer aesni
g++ -m32 -march=pentium4 -O2 -fomit-frame-pointer aesni
g++ -m32 -march=pentium4 -O3 -fomit-frame-pointer aesni
g++ -m32 -march=pentium4 -O -fomit-frame-pointer aesni
g++ -m32 -march=pentium4 -Os -fomit-frame-pointer aesni
g++ -m32 -march=prescott -O2 -fomit-frame-pointer aesni
g++ -m32 -march=prescott -O3 -fomit-frame-pointer aesni
g++ -m32 -march=prescott -O -fomit-frame-pointer aesni
g++ -m32 -march=prescott -Os -fomit-frame-pointer aesni