Implementation notes: x86, jos, crypto_aead/paeq160

Computer: jos
Architecture: x86
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: paeq160
TimeImplementationCompilerBenchmark dateSUPERCOP version
10905112refg++ -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014101620141014
10912597refg++ -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2014101620141014
10920832refg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2014101620141014
10930703refg++ -m32 -march=core2 -O3 -fomit-frame-pointer2014101620141014
10932030refg++ -m32 -march=k8 -O3 -fomit-frame-pointer2014101620141014
10942365refg++ -m32 -march=athlon -O3 -fomit-frame-pointer2014101620141014
10946063refg++ -m32 -march=barcelona -O3 -fomit-frame-pointer2014101620141014
10953900refg++ -m32 -march=nocona -O3 -fomit-frame-pointer2014101620141014
10972913refg++ -m32 -march=prescott -O3 -fomit-frame-pointer2014101620141014
11260500refg++ -m32 -march=pentium4 -O3 -fomit-frame-pointer2014101620141014
11516085refg++ -m32 -march=k6-3 -O3 -fomit-frame-pointer2014101620141014
11528063refg++ -m32 -O3 -fomit-frame-pointer2014101620141014
11531152refg++ -m32 -march=i386 -O3 -fomit-frame-pointer2014101620141014
11552677refg++ -m32 -march=k6-2 -O3 -fomit-frame-pointer2014101620141014
11562773refg++ -m32 -march=k6 -O3 -fomit-frame-pointer2014101620141014
11849505refg++ -m32 -march=pentium -O3 -fomit-frame-pointer2014101620141014
11856203refg++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2014101620141014
11868060refg++ -m32 -march=pentium2 -O3 -fomit-frame-pointer2014101620141014
11872058refg++ -m32 -march=pentium-m -O3 -fomit-frame-pointer2014101620141014
11881192refg++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer2014101620141014
11928397refg++ -m32 -march=pentium3 -O3 -fomit-frame-pointer2014101620141014
11987970refg++ -m32 -march=i486 -O3 -fomit-frame-pointer2014101620141014
15490492refg++ -m32 -march=athlon -O2 -fomit-frame-pointer2014101620141014
15597270refg++ -m32 -march=barcelona -O2 -fomit-frame-pointer2014101620141014
15837937refg++ -m32 -march=k8 -O2 -fomit-frame-pointer2014101620141014
16034152refg++ -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2014101620141014
16071195refg++ -m32 -march=core2 -O2 -fomit-frame-pointer2014101620141014
16126620refg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2014101620141014
16134015refg++ -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014101620141014
17688990refg++ -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2014101620141014
17694022refg++ -m32 -march=core2 -O -fomit-frame-pointer2014101620141014
17702393refg++ -m32 -march=native -mtune=native -O -fomit-frame-pointer2014101620141014
17722950refg++ -m32 -march=core2 -msse4 -O -fomit-frame-pointer2014101620141014
17778885refg++ -m32 -march=athlon -O -fomit-frame-pointer2014101620141014
17853990refg++ -m32 -march=barcelona -O -fomit-frame-pointer2014101620141014
17867220refg++ -m32 -march=k8 -O -fomit-frame-pointer2014101620141014
18317460refg++ -m32 -march=pentium4 -O2 -fomit-frame-pointer2014101620141014
19669853refg++ -m32 -march=prescott -Os -fomit-frame-pointer2014101620141014
19716630refg++ -m32 -march=pentium4 -Os -fomit-frame-pointer2014101620141014
19721055refg++ -m32 -march=nocona -Os -fomit-frame-pointer2014101620141014
20152372refg++ -m32 -march=athlon -Os -fomit-frame-pointer2014101620141014
20161163refg++ -m32 -march=k8 -Os -fomit-frame-pointer2014101620141014
20168063refg++ -m32 -march=barcelona -Os -fomit-frame-pointer2014101620141014
20169150refg++ -m32 -march=pentium4 -O -fomit-frame-pointer2014101620141014
20243850refg++ -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2014101620141014
20248020refg++ -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014101620141014
20248065refg++ -m32 -march=native -mtune=native -Os -fomit-frame-pointer2014101620141014
20299215refg++ -m32 -march=core2 -Os -fomit-frame-pointer2014101620141014
22214265refg++ -m32 -march=nocona -O2 -fomit-frame-pointer2014101620141014
22222148refg++ -m32 -march=prescott -O2 -fomit-frame-pointer2014101620141014
23218358refg++ -m32 -march=nocona -O -fomit-frame-pointer2014101620141014
23238608refg++ -m32 -march=prescott -O -fomit-frame-pointer2014101620141014
26021805refg++ -m32 -O2 -fomit-frame-pointer2014101620141014
26170583refg++ -m32 -march=pentium3 -O2 -fomit-frame-pointer2014101620141014
26212575refg++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer2014101620141014
26217983refg++ -m32 -march=pentium-m -O2 -fomit-frame-pointer2014101620141014
26244398refg++ -m32 -march=pentium2 -O2 -fomit-frame-pointer2014101620141014
27294870refg++ -m32 -march=k6-3 -O2 -fomit-frame-pointer2014101620141014
27354202refg++ -m32 -march=k6 -O2 -fomit-frame-pointer2014101620141014
27379830refg++ -m32 -march=k6-2 -O2 -fomit-frame-pointer2014101620141014
27411427refg++ -m32 -march=i486 -O2 -fomit-frame-pointer2014101620141014
27527595refg++ -m32 -march=pentium -O2 -fomit-frame-pointer2014101620141014
27545243refg++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2014101620141014
27897847refg++ -m32 -march=i386 -O2 -fomit-frame-pointer2014101620141014
27909090refg++ -m32 -march=pentium-m -O -fomit-frame-pointer2014101620141014
27910418refg++ -m32 -march=pentium2 -O -fomit-frame-pointer2014101620141014
27937200refg++ -m32 -march=pentiumpro -O -fomit-frame-pointer2014101620141014
27947940refg++ -m32 -march=pentium3 -O -fomit-frame-pointer2014101620141014
28332157refg++ -m32 -O -fomit-frame-pointer2014101620141014
28632210refg++ -m32 -march=pentium-m -Os -fomit-frame-pointer2014101620141014
28637243refg++ -m32 -march=pentium2 -Os -fomit-frame-pointer2014101620141014
28640468refg++ -m32 -march=pentiumpro -Os -fomit-frame-pointer2014101620141014
28651178refg++ -m32 -march=pentium3 -Os -fomit-frame-pointer2014101620141014
29429880refg++ -m32 -march=i386 -O -fomit-frame-pointer2014101620141014
29701335refg++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer2014101620141014
29722462refg++ -m32 -march=pentium -Os -fomit-frame-pointer2014101620141014
30371977refg++ -m32 -march=k6-3 -O -fomit-frame-pointer2014101620141014
30390780refg++ -m32 -march=k6 -O -fomit-frame-pointer2014101620141014
30421268refg++ -m32 -march=k6-2 -O -fomit-frame-pointer2014101620141014
30623640refg++ -m32 -Os -fomit-frame-pointer2014101620141014
30643748refg++ -m32 -march=pentium -O -fomit-frame-pointer2014101620141014
30713145refg++ -m32 -march=pentium-mmx -O -fomit-frame-pointer2014101620141014
31463820refg++ -m32 -march=i486 -O -fomit-frame-pointer2014101620141014
31978748refg++ -m32 -march=i486 -Os -fomit-frame-pointer2014101620141014
32640622refg++ -m32 -march=i386 -Os -fomit-frame-pointer2014101620141014
33453270refg++ -m32 -march=k6-2 -Os -fomit-frame-pointer2014101620141014
33468878refg++ -m32 -march=k6-3 -Os -fomit-frame-pointer2014101620141014
33471945refg++ -m32 -march=k6 -Os -fomit-frame-pointer2014101620141014

Compiler output

Implementation: crypto_aead/paeq160/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/paeq160/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/paeq160/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