Implementation notes: x86, gcc14, crypto_aead/paeq80

Computer: gcc14
Architecture: x86
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_aead
Primitive: paeq80
TimeImplementationCompilerBenchmark dateSUPERCOP version
9073044refg++ -m32 -march=athlon -O3 -fomit-frame-pointer2016102220161009
9396099refg++ -m32 -march=barcelona -O3 -fomit-frame-pointer2016102220161009
9399501refg++ -m32 -march=k8 -O3 -fomit-frame-pointer2016102220161009
9416340refg++ -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2016102220161009
9418212refg++ -m32 -march=core2 -O3 -fomit-frame-pointer2016102220161009
9419049refg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2016102220161009
9420885refg++ -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016102220161009
9855585refg++ -m32 -march=k6 -O3 -fomit-frame-pointer2016102220161009
9856530refg++ -m32 -march=k6-2 -O3 -fomit-frame-pointer2016102220161009
9857034refg++ -m32 -march=k6-3 -O3 -fomit-frame-pointer2016102220161009
9938556refg++ -m32 -march=i386 -O3 -fomit-frame-pointer2016102220161009
10238184refg++ -m32 -march=prescott -O3 -fomit-frame-pointer2016102220161009
10238211refg++ -m32 -march=nocona -O3 -fomit-frame-pointer2016102220161009
10294362refg++ -m32 -march=pentium -O3 -fomit-frame-pointer2016102220161009
10296000refg++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2016102220161009
10341774refg++ -m32 -march=pentium4 -O3 -fomit-frame-pointer2016102220161009
10376523refg++ -m32 -march=i486 -O3 -fomit-frame-pointer2016102220161009
10446147refg++ -m32 -O3 -fomit-frame-pointer2016102220161009
10795185refg++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer2016102220161009
10805211refg++ -m32 -march=pentium2 -O3 -fomit-frame-pointer2016102220161009
10816641refg++ -m32 -march=pentium3 -O3 -fomit-frame-pointer2016102220161009
10943955refg++ -m32 -march=pentium-m -O3 -fomit-frame-pointer2016102220161009
12508182refg++ -m32 -march=barcelona -O2 -fomit-frame-pointer2016102220161009
12544074refg++ -m32 -march=athlon -O2 -fomit-frame-pointer2016102220161009
12546333refg++ -m32 -march=k8 -O2 -fomit-frame-pointer2016102220161009
12561516refg++ -m32 -march=core2 -O2 -fomit-frame-pointer2016102220161009
12573639refg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2016102220161009
12578634refg++ -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102220161009
12579678refg++ -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102220161009
13688370refg++ -m32 -march=athlon -O -fomit-frame-pointer2016102220161009
13691412refg++ -m32 -march=k8 -O -fomit-frame-pointer2016102220161009
13691700refg++ -m32 -march=barcelona -O -fomit-frame-pointer2016102220161009
13769883refg++ -m32 -march=core2 -O -fomit-frame-pointer2016102220161009
13836024refg++ -m32 -march=native -mtune=native -O -fomit-frame-pointer2016102220161009
13837419refg++ -m32 -march=core2 -msse4 -O -fomit-frame-pointer2016102220161009
13838985refg++ -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102220161009
19019898refg++ -m32 -march=nocona -O2 -fomit-frame-pointer2016102220161009
19020780refg++ -m32 -march=prescott -O2 -fomit-frame-pointer2016102220161009
19153071refg++ -m32 -march=pentium4 -O2 -fomit-frame-pointer2016102220161009
20142414refg++ -m32 -march=nocona -O -fomit-frame-pointer2016102220161009
20159793refg++ -m32 -march=prescott -O -fomit-frame-pointer2016102220161009
20233107refg++ -m32 -march=pentium4 -O -fomit-frame-pointer2016102220161009
20457540refg++ -m32 -march=barcelona -Os -fomit-frame-pointer2016102220161009
20463426refg++ -m32 -march=k8 -Os -fomit-frame-pointer2016102220161009
20467197refg++ -m32 -march=athlon -Os -fomit-frame-pointer2016102220161009
20494755refg++ -m32 -march=native -mtune=native -Os -fomit-frame-pointer2016102220161009
20494836refg++ -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2016102220161009
20498076refg++ -m32 -march=core2 -Os -fomit-frame-pointer2016102220161009
20504493refg++ -m32 -march=pentium4 -Os -fomit-frame-pointer2016102220161009
20505339refg++ -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102220161009
20561355refg++ -m32 -march=prescott -Os -fomit-frame-pointer2016102220161009
20561373refg++ -m32 -march=nocona -Os -fomit-frame-pointer2016102220161009
24057207refg++ -m32 -march=pentium2 -O2 -fomit-frame-pointer2016102220161009
24069555refg++ -m32 -march=pentium3 -O2 -fomit-frame-pointer2016102220161009
24112899refg++ -m32 -march=pentium-m -O2 -fomit-frame-pointer2016102220161009
24135570refg++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer2016102220161009
24487740refg++ -m32 -march=i486 -O2 -fomit-frame-pointer2016102220161009
24701949refg++ -m32 -O2 -fomit-frame-pointer2016102220161009
25653591refg++ -m32 -O -fomit-frame-pointer2016102220161009
25932105refg++ -m32 -march=pentium-m -Os -fomit-frame-pointer2016102220161009
25941114refg++ -m32 -march=pentium3 -Os -fomit-frame-pointer2016102220161009
25941942refg++ -m32 -march=pentium2 -Os -fomit-frame-pointer2016102220161009
25952715refg++ -m32 -march=pentiumpro -Os -fomit-frame-pointer2016102220161009
26618724refg++ -m32 -march=i386 -O2 -fomit-frame-pointer2016102220161009
26781309refg++ -m32 -march=pentium-m -O -fomit-frame-pointer2016102220161009
26823177refg++ -m32 -march=k6-3 -O2 -fomit-frame-pointer2016102220161009
26835696refg++ -m32 -march=k6-2 -O2 -fomit-frame-pointer2016102220161009
26844714refg++ -m32 -march=pentium3 -O -fomit-frame-pointer2016102220161009
26850564refg++ -m32 -march=k6 -O2 -fomit-frame-pointer2016102220161009
26867070refg++ -m32 -march=pentium2 -O -fomit-frame-pointer2016102220161009
26870715refg++ -m32 -march=pentiumpro -O -fomit-frame-pointer2016102220161009
27056961refg++ -m32 -march=i486 -Os -fomit-frame-pointer2016102220161009
27102600refg++ -m32 -march=i386 -Os -fomit-frame-pointer2016102220161009
27221211refg++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer2016102220161009
27293355refg++ -m32 -march=pentium -Os -fomit-frame-pointer2016102220161009
27440163refg++ -m32 -Os -fomit-frame-pointer2016102220161009
27841968refg++ -m32 -march=k6-3 -O -fomit-frame-pointer2016102220161009
27842139refg++ -m32 -march=k6-2 -O -fomit-frame-pointer2016102220161009
27973791refg++ -m32 -march=i386 -O -fomit-frame-pointer2016102220161009
27999351refg++ -m32 -march=pentium -O2 -fomit-frame-pointer2016102220161009
28008279refg++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2016102220161009
28014624refg++ -m32 -march=k6 -O -fomit-frame-pointer2016102220161009
28236429refg++ -m32 -march=k6-2 -Os -fomit-frame-pointer2016102220161009
28240785refg++ -m32 -march=k6 -Os -fomit-frame-pointer2016102220161009
28242648refg++ -m32 -march=k6-3 -Os -fomit-frame-pointer2016102220161009
31095567refg++ -m32 -march=pentium -O -fomit-frame-pointer2016102220161009
31115034refg++ -m32 -march=pentium-mmx -O -fomit-frame-pointer2016102220161009
33048864refg++ -m32 -march=i486 -O -fomit-frame-pointer2016102220161009

Compiler output

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