Implementation notes: x86, gcc14, crypto_aead/paeq64

Computer: gcc14
Architecture: x86
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_aead
Primitive: paeq64
TimeImplementationCompilerBenchmark dateSUPERCOP version
8893845refg++ -m32 -march=athlon -O3 -fomit-frame-pointer2016102220161009
9182187refg++ -m32 -march=k8 -O3 -fomit-frame-pointer2016102220161009
9191088refg++ -m32 -march=barcelona -O3 -fomit-frame-pointer2016102220161009
9219483refg++ -m32 -march=core2 -O3 -fomit-frame-pointer2016102220161009
9223866refg++ -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016102220161009
9224046refg++ -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2016102220161009
9224946refg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2016102220161009
9622125refg++ -m32 -march=k6-3 -O3 -fomit-frame-pointer2016102220161009
9624015refg++ -m32 -march=k6 -O3 -fomit-frame-pointer2016102220161009
9635031refg++ -m32 -march=k6-2 -O3 -fomit-frame-pointer2016102220161009
9768501refg++ -m32 -march=i386 -O3 -fomit-frame-pointer2016102220161009
10061613refg++ -m32 -march=prescott -O3 -fomit-frame-pointer2016102220161009
10062252refg++ -m32 -march=nocona -O3 -fomit-frame-pointer2016102220161009
10090017refg++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2016102220161009
10090701refg++ -m32 -march=pentium -O3 -fomit-frame-pointer2016102220161009
10108404refg++ -m32 -march=i486 -O3 -fomit-frame-pointer2016102220161009
10153224refg++ -m32 -march=pentium4 -O3 -fomit-frame-pointer2016102220161009
10378854refg++ -m32 -O3 -fomit-frame-pointer2016102220161009
10538298refg++ -m32 -march=pentium2 -O3 -fomit-frame-pointer2016102220161009
10542447refg++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer2016102220161009
10631601refg++ -m32 -march=pentium3 -O3 -fomit-frame-pointer2016102220161009
10838511refg++ -m32 -march=pentium-m -O3 -fomit-frame-pointer2016102220161009
12205431refg++ -m32 -march=core2 -O2 -fomit-frame-pointer2016102220161009
12246516refg++ -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102220161009
12246948refg++ -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102220161009
12248325refg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2016102220161009
12265947refg++ -m32 -march=barcelona -O2 -fomit-frame-pointer2016102220161009
12322485refg++ -m32 -march=k8 -O2 -fomit-frame-pointer2016102220161009
12327264refg++ -m32 -march=athlon -O2 -fomit-frame-pointer2016102220161009
13414158refg++ -m32 -march=core2 -O -fomit-frame-pointer2016102220161009
13419657refg++ -m32 -march=core2 -msse4 -O -fomit-frame-pointer2016102220161009
13419783refg++ -m32 -march=native -mtune=native -O -fomit-frame-pointer2016102220161009
13421376refg++ -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102220161009
13497147refg++ -m32 -march=barcelona -O -fomit-frame-pointer2016102220161009
13563027refg++ -m32 -march=k8 -O -fomit-frame-pointer2016102220161009
13573926refg++ -m32 -march=athlon -O -fomit-frame-pointer2016102220161009
18854757refg++ -m32 -march=prescott -O2 -fomit-frame-pointer2016102220161009
18857610refg++ -m32 -march=nocona -O2 -fomit-frame-pointer2016102220161009
18913716refg++ -m32 -march=pentium4 -O2 -fomit-frame-pointer2016102220161009
19916703refg++ -m32 -march=prescott -O -fomit-frame-pointer2016102220161009
19919043refg++ -m32 -march=nocona -O -fomit-frame-pointer2016102220161009
20000547refg++ -m32 -march=pentium4 -O -fomit-frame-pointer2016102220161009
20264130refg++ -m32 -march=core2 -Os -fomit-frame-pointer2016102220161009
20300166refg++ -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2016102220161009
20301462refg++ -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102220161009
20306835refg++ -m32 -march=native -mtune=native -Os -fomit-frame-pointer2016102220161009
20322999refg++ -m32 -march=pentium4 -Os -fomit-frame-pointer2016102220161009
20357838refg++ -m32 -march=barcelona -Os -fomit-frame-pointer2016102220161009
20367549refg++ -m32 -march=athlon -Os -fomit-frame-pointer2016102220161009
20369574refg++ -m32 -march=k8 -Os -fomit-frame-pointer2016102220161009
20370429refg++ -m32 -march=prescott -Os -fomit-frame-pointer2016102220161009
20371761refg++ -m32 -march=nocona -Os -fomit-frame-pointer2016102220161009
24169527refg++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer2016102220161009
24214770refg++ -m32 -march=pentium3 -O2 -fomit-frame-pointer2016102220161009
24215013refg++ -m32 -march=i486 -O2 -fomit-frame-pointer2016102220161009
24305913refg++ -m32 -march=pentium2 -O2 -fomit-frame-pointer2016102220161009
24340923refg++ -m32 -march=pentium-m -O2 -fomit-frame-pointer2016102220161009
24526269refg++ -m32 -O2 -fomit-frame-pointer2016102220161009
25063920refg++ -m32 -march=pentiumpro -Os -fomit-frame-pointer2016102220161009
25081686refg++ -m32 -march=pentium3 -Os -fomit-frame-pointer2016102220161009
25082037refg++ -m32 -march=pentium-m -Os -fomit-frame-pointer2016102220161009
25095609refg++ -m32 -march=pentium2 -Os -fomit-frame-pointer2016102220161009
25173324refg++ -m32 -O -fomit-frame-pointer2016102220161009
26057088refg++ -m32 -march=i386 -O2 -fomit-frame-pointer2016102220161009
26606520refg++ -m32 -march=pentium-m -O -fomit-frame-pointer2016102220161009
26610129refg++ -m32 -march=pentiumpro -O -fomit-frame-pointer2016102220161009
26610552refg++ -m32 -march=pentium3 -O -fomit-frame-pointer2016102220161009
26621748refg++ -m32 -march=pentium2 -O -fomit-frame-pointer2016102220161009
26634069refg++ -m32 -march=k6 -O2 -fomit-frame-pointer2016102220161009
26670888refg++ -m32 -march=k6-3 -O2 -fomit-frame-pointer2016102220161009
26763147refg++ -m32 -march=k6-2 -O2 -fomit-frame-pointer2016102220161009
26799201refg++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer2016102220161009
26820117refg++ -m32 -march=pentium -Os -fomit-frame-pointer2016102220161009
26987616refg++ -m32 -march=k6 -O -fomit-frame-pointer2016102220161009
26990244refg++ -m32 -Os -fomit-frame-pointer2016102220161009
27190215refg++ -m32 -march=i386 -Os -fomit-frame-pointer2016102220161009
27193626refg++ -m32 -march=k6-3 -Os -fomit-frame-pointer2016102220161009
27196272refg++ -m32 -march=k6 -Os -fomit-frame-pointer2016102220161009
27198495refg++ -m32 -march=k6-2 -Os -fomit-frame-pointer2016102220161009
27255429refg++ -m32 -march=i486 -Os -fomit-frame-pointer2016102220161009
27493758refg++ -m32 -march=k6-2 -O -fomit-frame-pointer2016102220161009
27504297refg++ -m32 -march=k6-3 -O -fomit-frame-pointer2016102220161009
27651042refg++ -m32 -march=i386 -O -fomit-frame-pointer2016102220161009
27695295refg++ -m32 -march=pentium -O2 -fomit-frame-pointer2016102220161009
27700335refg++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2016102220161009
30033018refg++ -m32 -march=pentium -O -fomit-frame-pointer2016102220161009
30033729refg++ -m32 -march=pentium-mmx -O -fomit-frame-pointer2016102220161009
30045537refg++ -m32 -march=i486 -O -fomit-frame-pointer2016102220161009

Compiler output

Implementation: crypto_aead/paeq64/aesni
Compiler: g++ -m32 -O2 -fomit-frame-pointer
encrypt.cpp: encrypt.cpp:13:23: error: wmmintrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:17:23: error: x86intrin.h: No such file or directory
encrypt.cpp: In file included from encrypt.cpp:19:
encrypt.cpp: /usr/lib/gcc/x86_64-linux-gnu/4.3.2/include/emmintrin.h:34:3: error: #error "SSE2 instruction set not enabled"
encrypt.cpp: encrypt.cpp:143: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:143: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:222: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:222: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:140: error: expected ',' or '...' before '*' token
encrypt.cpp: encrypt.cpp:140: error: ISO C++ forbids declaration of '__m128i' with no type
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(int)':
encrypt.cpp: encrypt.cpp:143: error: expected `;' before 'roundkey0'
encrypt.cpp: encrypt.cpp:144: error: expected `;' before 'roundkey1'
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: encrypt.cpp:13:23: error: wmmintrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:17:23: error: x86intrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:143: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:143: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:222: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:222: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const long long int __vector__*, const long long int __vector__*, long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:166: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:240: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp:13:23: error: wmmintrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:17:23: error: x86intrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:143: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:143: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:222: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:222: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const long long int __vector__*, const long long int __vector__*, long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:166: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:240: 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: encrypt.cpp:13:23: error: wmmintrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:17:23: error: x86intrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:143: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:143: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:222: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:222: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const long long int __vector__*, const long long int __vector__*, long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:166: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:240: 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