Implementation notes: x86, gcc14, crypto_aead/paeq160

Computer: gcc14
Architecture: x86
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_aead
Primitive: paeq160
TimeImplementationCompilerBenchmark dateSUPERCOP version
10680840refg++ -m32 -march=athlon -O3 -fomit-frame-pointer2016102220161009
11308914refg++ -m32 -march=core2 -O3 -fomit-frame-pointer2016102220161009
11318220refg++ -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016102220161009
11320434refg++ -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2016102220161009
11321307refg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2016102220161009
11363877refg++ -m32 -march=barcelona -O3 -fomit-frame-pointer2016102220161009
11387295refg++ -m32 -march=k8 -O3 -fomit-frame-pointer2016102220161009
11500011refg++ -m32 -march=k6-3 -O3 -fomit-frame-pointer2016102220161009
11501109refg++ -m32 -march=k6 -O3 -fomit-frame-pointer2016102220161009
11501568refg++ -m32 -march=k6-2 -O3 -fomit-frame-pointer2016102220161009
11585970refg++ -m32 -march=i386 -O3 -fomit-frame-pointer2016102220161009
11990223refg++ -m32 -march=i486 -O3 -fomit-frame-pointer2016102220161009
12010644refg++ -m32 -march=nocona -O3 -fomit-frame-pointer2016102220161009
12012516refg++ -m32 -march=prescott -O3 -fomit-frame-pointer2016102220161009
12043179refg++ -m32 -march=pentium -O3 -fomit-frame-pointer2016102220161009
12043494refg++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2016102220161009
12128571refg++ -m32 -march=pentium2 -O3 -fomit-frame-pointer2016102220161009
12135672refg++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer2016102220161009
12141099refg++ -m32 -O3 -fomit-frame-pointer2016102220161009
12168414refg++ -m32 -march=pentium4 -O3 -fomit-frame-pointer2016102220161009
12836610refg++ -m32 -march=pentium3 -O3 -fomit-frame-pointer2016102220161009
12938184refg++ -m32 -march=pentium-m -O3 -fomit-frame-pointer2016102220161009
14583402refg++ -m32 -march=core2 -O2 -fomit-frame-pointer2016102220161009
14585355refg++ -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102220161009
14586318refg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2016102220161009
14586390refg++ -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102220161009
14622516refg++ -m32 -march=barcelona -O2 -fomit-frame-pointer2016102220161009
14734728refg++ -m32 -march=athlon -O2 -fomit-frame-pointer2016102220161009
14765598refg++ -m32 -march=k8 -O2 -fomit-frame-pointer2016102220161009
15872922refg++ -m32 -march=barcelona -O -fomit-frame-pointer2016102220161009
15915141refg++ -m32 -march=athlon -O -fomit-frame-pointer2016102220161009
15962886refg++ -m32 -march=k8 -O -fomit-frame-pointer2016102220161009
16121844refg++ -m32 -march=native -mtune=native -O -fomit-frame-pointer2016102220161009
16122699refg++ -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102220161009
16124400refg++ -m32 -march=core2 -msse4 -O -fomit-frame-pointer2016102220161009
16157088refg++ -m32 -march=core2 -O -fomit-frame-pointer2016102220161009
21215286refg++ -m32 -march=nocona -O2 -fomit-frame-pointer2016102220161009
21218724refg++ -m32 -march=prescott -O2 -fomit-frame-pointer2016102220161009
21318912refg++ -m32 -march=pentium4 -O2 -fomit-frame-pointer2016102220161009
22430214refg++ -m32 -march=nocona -O -fomit-frame-pointer2016102220161009
22448070refg++ -m32 -march=prescott -O -fomit-frame-pointer2016102220161009
22560183refg++ -m32 -march=pentium4 -O -fomit-frame-pointer2016102220161009
22699872refg++ -m32 -march=barcelona -Os -fomit-frame-pointer2016102220161009
22711086refg++ -m32 -march=athlon -Os -fomit-frame-pointer2016102220161009
22717638refg++ -m32 -march=k8 -Os -fomit-frame-pointer2016102220161009
22762953refg++ -m32 -march=native -mtune=native -Os -fomit-frame-pointer2016102220161009
22763079refg++ -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102220161009
22765914refg++ -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2016102220161009
22765977refg++ -m32 -march=core2 -Os -fomit-frame-pointer2016102220161009
22779972refg++ -m32 -march=pentium4 -Os -fomit-frame-pointer2016102220161009
22861233refg++ -m32 -march=nocona -Os -fomit-frame-pointer2016102220161009
22862511refg++ -m32 -march=prescott -Os -fomit-frame-pointer2016102220161009
26742906refg++ -m32 -march=i486 -O2 -fomit-frame-pointer2016102220161009
26904060refg++ -m32 -march=pentium2 -O2 -fomit-frame-pointer2016102220161009
26906859refg++ -m32 -march=pentium3 -O2 -fomit-frame-pointer2016102220161009
26911476refg++ -m32 -march=pentium-m -O2 -fomit-frame-pointer2016102220161009
26919963refg++ -m32 -O2 -fomit-frame-pointer2016102220161009
26961975refg++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer2016102220161009
28184166refg++ -m32 -march=pentium2 -Os -fomit-frame-pointer2016102220161009
28185057refg++ -m32 -march=pentium3 -Os -fomit-frame-pointer2016102220161009
28199340refg++ -m32 -march=pentiumpro -Os -fomit-frame-pointer2016102220161009
28206765refg++ -m32 -march=pentium-m -Os -fomit-frame-pointer2016102220161009
28260810refg++ -m32 -O -fomit-frame-pointer2016102220161009
28731690refg++ -m32 -march=i386 -O2 -fomit-frame-pointer2016102220161009
28774917refg++ -m32 -march=pentium-m -O -fomit-frame-pointer2016102220161009
28817838refg++ -m32 -march=pentiumpro -O -fomit-frame-pointer2016102220161009
28864926refg++ -m32 -march=pentium2 -O -fomit-frame-pointer2016102220161009
28879119refg++ -m32 -march=pentium3 -O -fomit-frame-pointer2016102220161009
29073573refg++ -m32 -march=k6-3 -O2 -fomit-frame-pointer2016102220161009
29102625refg++ -m32 -march=k6 -O2 -fomit-frame-pointer2016102220161009
29167983refg++ -m32 -march=k6-2 -O2 -fomit-frame-pointer2016102220161009
29352348refg++ -m32 -march=i486 -Os -fomit-frame-pointer2016102220161009
29415600refg++ -m32 -march=i386 -Os -fomit-frame-pointer2016102220161009
29501631refg++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer2016102220161009
29564325refg++ -m32 -march=pentium -Os -fomit-frame-pointer2016102220161009
29763612refg++ -m32 -Os -fomit-frame-pointer2016102220161009
30179682refg++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2016102220161009
30206889refg++ -m32 -march=pentium -O2 -fomit-frame-pointer2016102220161009
30305619refg++ -m32 -march=i386 -O -fomit-frame-pointer2016102220161009
30676896refg++ -m32 -march=k6-3 -Os -fomit-frame-pointer2016102220161009
30678570refg++ -m32 -march=k6-2 -Os -fomit-frame-pointer2016102220161009
30683943refg++ -m32 -march=k6 -Os -fomit-frame-pointer2016102220161009
31009392refg++ -m32 -march=k6 -O -fomit-frame-pointer2016102220161009
31027572refg++ -m32 -march=k6-3 -O -fomit-frame-pointer2016102220161009
31039506refg++ -m32 -march=k6-2 -O -fomit-frame-pointer2016102220161009
32819769refg++ -m32 -march=pentium -O -fomit-frame-pointer2016102220161009
32845374refg++ -m32 -march=pentium-mmx -O -fomit-frame-pointer2016102220161009
33171966refg++ -m32 -march=i486 -O -fomit-frame-pointer2016102220161009

Compiler output

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