Implementation notes: x86, jos, crypto_aead/paeq80

Computer: jos
Architecture: x86
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: paeq80
TimeImplementationCompilerBenchmark dateSUPERCOP version
9359970refg++ -m32 -march=core2 -O3 -fomit-frame-pointer2014101620141014
9385980refg++ -m32 -march=barcelona -O3 -fomit-frame-pointer2014101620141014
9392235refg++ -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2014101620141014
9392445refg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2014101620141014
9395685refg++ -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014101620141014
9402398refg++ -m32 -march=k8 -O3 -fomit-frame-pointer2014101620141014
9415808refg++ -m32 -march=athlon -O3 -fomit-frame-pointer2014101620141014
9491903refg++ -m32 -march=prescott -O3 -fomit-frame-pointer2014101620141014
9500715refg++ -m32 -march=nocona -O3 -fomit-frame-pointer2014101620141014
9656010refg++ -m32 -march=pentium4 -O3 -fomit-frame-pointer2014101620141014
9873270refg++ -m32 -O3 -fomit-frame-pointer2014101620141014
9873923refg++ -m32 -march=k6-2 -O3 -fomit-frame-pointer2014101620141014
9899055refg++ -m32 -march=k6 -O3 -fomit-frame-pointer2014101620141014
9916582refg++ -m32 -march=i386 -O3 -fomit-frame-pointer2014101620141014
9949223refg++ -m32 -march=k6-3 -O3 -fomit-frame-pointer2014101620141014
10183545refg++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2014101620141014
10186905refg++ -m32 -march=pentium -O3 -fomit-frame-pointer2014101620141014
10268700refg++ -m32 -march=pentium-m -O3 -fomit-frame-pointer2014101620141014
10326517refg++ -m32 -march=pentium2 -O3 -fomit-frame-pointer2014101620141014
10344653refg++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer2014101620141014
10355258refg++ -m32 -march=pentium3 -O3 -fomit-frame-pointer2014101620141014
10375642refg++ -m32 -march=i486 -O3 -fomit-frame-pointer2014101620141014
13657853refg++ -m32 -march=k8 -O2 -fomit-frame-pointer2014101620141014
13668907refg++ -m32 -march=athlon -O2 -fomit-frame-pointer2014101620141014
13669290refg++ -m32 -march=barcelona -O2 -fomit-frame-pointer2014101620141014
14058105refg++ -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014101620141014
14059440refg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2014101620141014
14060468refg++ -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2014101620141014
14075655refg++ -m32 -march=core2 -O2 -fomit-frame-pointer2014101620141014
15598365refg++ -m32 -march=k8 -O -fomit-frame-pointer2014101620141014
15608895refg++ -m32 -march=core2 -O -fomit-frame-pointer2014101620141014
15613695refg++ -m32 -march=athlon -O -fomit-frame-pointer2014101620141014
15615667refg++ -m32 -march=core2 -msse4 -O -fomit-frame-pointer2014101620141014
15628748refg++ -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2014101620141014
15628807refg++ -m32 -march=native -mtune=native -O -fomit-frame-pointer2014101620141014
15696660refg++ -m32 -march=barcelona -O -fomit-frame-pointer2014101620141014
16404975refg++ -m32 -march=pentium4 -O2 -fomit-frame-pointer2014101620141014
17552625refg++ -m32 -march=prescott -Os -fomit-frame-pointer2014101620141014
17552655refg++ -m32 -march=pentium4 -Os -fomit-frame-pointer2014101620141014
17591205refg++ -m32 -march=nocona -Os -fomit-frame-pointer2014101620141014
17933730refg++ -m32 -march=athlon -Os -fomit-frame-pointer2014101620141014
17940255refg++ -m32 -march=k8 -Os -fomit-frame-pointer2014101620141014
17957242refg++ -m32 -march=barcelona -Os -fomit-frame-pointer2014101620141014
18002205refg++ -m32 -march=pentium4 -O -fomit-frame-pointer2014101620141014
18018195refg++ -m32 -march=core2 -Os -fomit-frame-pointer2014101620141014
18026122refg++ -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014101620141014
18029580refg++ -m32 -march=native -mtune=native -Os -fomit-frame-pointer2014101620141014
18045607refg++ -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2014101620141014
20114760refg++ -m32 -march=nocona -O2 -fomit-frame-pointer2014101620141014
20125215refg++ -m32 -march=prescott -O2 -fomit-frame-pointer2014101620141014
21085290refg++ -m32 -march=nocona -O -fomit-frame-pointer2014101620141014
21111068refg++ -m32 -march=prescott -O -fomit-frame-pointer2014101620141014
23684512refg++ -m32 -O2 -fomit-frame-pointer2014101620141014
24330442refg++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2014101620141014
24331417refg++ -m32 -march=pentium -O2 -fomit-frame-pointer2014101620141014
24421320refg++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer2014101620141014
24461363refg++ -m32 -march=pentium3 -O2 -fomit-frame-pointer2014101620141014
24853643refg++ -m32 -march=pentium2 -O2 -fomit-frame-pointer2014101620141014
24896490refg++ -m32 -march=pentium-m -O2 -fomit-frame-pointer2014101620141014
24991402refg++ -m32 -march=pentium2 -O -fomit-frame-pointer2014101620141014
25038570refg++ -m32 -march=pentium3 -O -fomit-frame-pointer2014101620141014
25078020refg++ -m32 -march=pentium-m -O -fomit-frame-pointer2014101620141014
25206337refg++ -m32 -march=pentiumpro -O -fomit-frame-pointer2014101620141014
25264148refg++ -m32 -march=i486 -O2 -fomit-frame-pointer2014101620141014
25764413refg++ -m32 -march=k6-3 -O2 -fomit-frame-pointer2014101620141014
25841963refg++ -m32 -march=k6-2 -O2 -fomit-frame-pointer2014101620141014
26003940refg++ -m32 -O -fomit-frame-pointer2014101620141014
26108745refg++ -m32 -march=i386 -O2 -fomit-frame-pointer2014101620141014
26421067refg++ -m32 -march=pentium3 -Os -fomit-frame-pointer2014101620141014
26433030refg++ -m32 -march=pentium-m -Os -fomit-frame-pointer2014101620141014
26447115refg++ -m32 -march=k6 -O -fomit-frame-pointer2014101620141014
26456610refg++ -m32 -march=k6-3 -O -fomit-frame-pointer2014101620141014
26465835refg++ -m32 -march=pentium2 -Os -fomit-frame-pointer2014101620141014
26465902refg++ -m32 -march=pentiumpro -Os -fomit-frame-pointer2014101620141014
26469600refg++ -m32 -march=k6 -O2 -fomit-frame-pointer2014101620141014
26479883refg++ -m32 -march=k6-2 -O -fomit-frame-pointer2014101620141014
27144465refg++ -m32 -march=i386 -O -fomit-frame-pointer2014101620141014
27534157refg++ -m32 -march=pentium -Os -fomit-frame-pointer2014101620141014
27537068refg++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer2014101620141014
28466775refg++ -m32 -march=pentium -O -fomit-frame-pointer2014101620141014
28482540refg++ -m32 -Os -fomit-frame-pointer2014101620141014
28529595refg++ -m32 -march=pentium-mmx -O -fomit-frame-pointer2014101620141014
28766228refg++ -m32 -march=i486 -O -fomit-frame-pointer2014101620141014
29952030refg++ -m32 -march=i386 -Os -fomit-frame-pointer2014101620141014
30394432refg++ -m32 -march=i486 -Os -fomit-frame-pointer2014101620141014
31118190refg++ -m32 -march=k6 -Os -fomit-frame-pointer2014101620141014
31139160refg++ -m32 -march=k6-3 -Os -fomit-frame-pointer2014101620141014
31194225refg++ -m32 -march=k6-2 -Os -fomit-frame-pointer2014101620141014

Compiler output

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