Implementation notes: amd64, mace, crypto_stream

Computer: mace
Architecture: amd64
CPU ID: AuthenticAMD-00040fb2-178bfbff
CPU cycles/second: 2009226000...2009293000 (amd64cpuinfo)
SUPERCOP version: 20120207
Benchmark dates: 20100803...20120208

crypto_core

TimeRelative timePrimitiveImplementationCompiler
6001.00hsalsa20crypto_core/hsalsa20/refgcc -march=nocona -O3 -fomit-frame-pointer
6001.00hsalsa20crypto_core/hsalsa20/ref2gcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.5.2)
6511.00salsa20crypto_core/salsa20/refgcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.5.2)
4391.00salsa2012crypto_core/salsa2012/refgcc -m64 -march=core2 -O3 -fomit-frame-pointer
3481.00salsa208crypto_core/salsa208/refgcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.5.2)

crypto_stream

TimeRelative timePrimitiveImplementationCompiler
188291.00aes128ctrcrypto_stream/aes128ctr/cryptoppg++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer (4.5.2)
162211.00aes128estreamcrypto_stream/aes128estream/e/schwabe/athlon64-2gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer (4.5.2)
169291.04aes128estreamcrypto_stream/aes128estream/e/schwabe/athlon64-1gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer (4.5.2)
202611.25aes128estreamcrypto_stream/aes128estream/e/bernstein/amd64-1gcc -funroll-loops -m64 -O3 -fomit-frame-pointer
210471.30aes128estreamcrypto_stream/aes128estream/e/bernstein/amd64-2gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer
212291.31aes128estreamcrypto_stream/aes128estream/e/hongjun/v0gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer
212601.31aes128estreamcrypto_stream/aes128estream/e/hongjun/v1gcc -m64 -march=core2 -O3 -fomit-frame-pointer
228071.41aes128estreamcrypto_stream/aes128estream/e/schwabe/core2gcc -m64 -march=k8 -O2 -fomit-frame-pointer
250361.54aes128estreamcrypto_stream/aes128estream/e/bernstein/little-2gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer
259031.60aes128estreamcrypto_stream/aes128estream/e/bernstein/little-4gcc -O2 -fomit-frame-pointer
260881.61aes128estreamcrypto_stream/aes128estream/e/bernstein/little-1gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer
263221.62aes128estreamcrypto_stream/aes128estream/e/bernstein/big-1gcc -m64 -O2 -fomit-frame-pointer
264001.63aes128estreamcrypto_stream/aes128estream/e/gladmangcc -m64 -march=barcelona -Os -fomit-frame-pointer
289751.79aes128estreamcrypto_stream/aes128estream/e/bernstein/little-3gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer
aes128estreamcrypto_stream/aes128estream/e/bernstein/x86-mmx-1gcc -m64 -O3 -fomit-frame-pointer
aes128estreamcrypto_stream/aes128estream/e/schwabe/pentium4-1gcc -m64 -O3 -fomit-frame-pointer
aes128estreamcrypto_stream/aes128estream/e/schwabe/ppc32linux-1gcc -m64 -O3 -fomit-frame-pointer
aes128estreamcrypto_stream/aes128estream/e/schwabe/ultrasparc3-1gcc -m64 -O3 -fomit-frame-pointer
219871.00aes192ctrcrypto_stream/aes192ctr/cryptoppg++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer (4.5.2)
253441.00aes256ctrcrypto_stream/aes256ctr/cryptoppg++ -march=barcelona -O3 -fomit-frame-pointer (4.5.2)
294291.00aes256estreamcrypto_stream/aes256estream/e/hongjun/v0gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer (4.5.2)
296971.01aes256estreamcrypto_stream/aes256estream/e/hongjun/v1gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer
335391.14aes256estreamcrypto_stream/aes256estream/e/gladmangcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer
amastridcrypto_stream/amastrid/refg++ -m64 -O3 -fomit-frame-pointer
65651.00chacha12crypto_stream/chacha12/e/mergedgcc -march=barcelona -O2 -fomit-frame-pointer (4.5.2)
71421.09chacha12crypto_stream/chacha12/e/amd64-3gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer
71511.09chacha12crypto_stream/chacha12/e/regsgcc -m64 -O3 -fomit-frame-pointer
86851.32chacha12crypto_stream/chacha12/e/amd64-xmm6gcc -m64 -march=nocona -O2 -fomit-frame-pointer
96151.46chacha12crypto_stream/chacha12/e/refgcc -m64 -march=core2 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/amd64-ssse3gcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/sparcgcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
chacha12crypto_stream/chacha12/e/x86-xmm6gcc -m64 -O3 -fomit-frame-pointer
108441.00chacha20crypto_stream/chacha20/e/mergedgcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.5.2)
111741.03chacha20crypto_stream/chacha20/e/amd64-3gcc -funroll-loops -m64 -O3 -fomit-frame-pointer
115661.07chacha20crypto_stream/chacha20/e/regsgcc -march=barcelona -O3 -fomit-frame-pointer
134281.24chacha20crypto_stream/chacha20/e/amd64-xmm6gcc -m64 -march=nocona -O2 -fomit-frame-pointer
136821.26chacha20crypto_stream/chacha20/e/refgcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.5.2)
chacha20crypto_stream/chacha20/amd64-ssse3gcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/sparcgcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
chacha20crypto_stream/chacha20/e/x86-xmm6gcc -m64 -O3 -fomit-frame-pointer
51261.00chacha8crypto_stream/chacha8/e/amd64-3gcc -funroll-loops -m64 -O3 -fomit-frame-pointer
54861.07chacha8crypto_stream/chacha8/e/mergedgcc -m64 -march=barcelona -O2 -fomit-frame-pointer
61001.19chacha8crypto_stream/chacha8/e/regsgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer
63671.24chacha8crypto_stream/chacha8/e/amd64-xmm6gcc -m64 -Os -fomit-frame-pointer
75511.47chacha8crypto_stream/chacha8/e/refgcc -m64 -march=core2 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/amd64-ssse3gcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/sparcgcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
chacha8crypto_stream/chacha8/e/x86-xmm6gcc -m64 -O3 -fomit-frame-pointer
112381.00cryptmtv3crypto_stream/cryptmtv3/e/v3gcc -march=nocona -O2 -fomit-frame-pointer (4.5.2)
254861.00dragoncrypto_stream/dragon/e/submissions/dragongcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer (4.5.2)
233381.00hc128crypto_stream/hc128/e/hc-128/200701agcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer (4.5.2)
234751.01hc128crypto_stream/hc128/e/hc-128/200606gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer
235221.01hc128crypto_stream/hc128/e/hc-128/200701bgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer
593131.00hc256crypto_stream/hc256/e/hc-256/200701gcc -funroll-loops -m64 -O3 -fomit-frame-pointer (4.5.2)
594471.00hc256crypto_stream/hc256/e/hc-256/200511gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer
87631.00lexv2crypto_stream/lexv2/e/v2/schwabe/amd64-1gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer (4.5.2)
102751.17lexv2crypto_stream/lexv2/e/v2/refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer
116421.33lexv2crypto_stream/lexv2/e/v2/schwabe/amd64-2gcc -march=nocona -O2 -fomit-frame-pointer
lexv2crypto_stream/lexv2/e/v2/schwabe/ppc32linux-1gcc -m64 -O3 -fomit-frame-pointer
lexv2crypto_stream/lexv2/e/v2/schwabe/ppc32macos-1gcc -m64 -O3 -fomit-frame-pointer
lexv2crypto_stream/lexv2/e/v2/schwabe/sparc-1gcc -m64 -O3 -fomit-frame-pointer
lexv2crypto_stream/lexv2/e/v2/schwabe/sparc-2gcc -m64 -O3 -fomit-frame-pointer
74981.00nlsv2crypto_stream/nlsv2/e/v2/sync/2gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer (4.5.2)
201362.69nlsv2crypto_stream/nlsv2/e/v2/sync/1gcc -march=nocona -O3 -fomit-frame-pointer
ocelot1crypto_stream/ocelot1/refg++ -m64 -O3 -fomit-frame-pointer
ocelot2crypto_stream/ocelot2/refg++ -m64 -O3 -fomit-frame-pointer
108091.00panamacrypto_stream/panama/cryptoppg++ -m64 -march=k8 -O3 -fomit-frame-pointer (4.5.2)
79551.00rabbitcrypto_stream/rabbit/e/opt/2/3gcc -m64 -march=k8 -O3 -fomit-frame-pointer (4.5.2)
79561.00rabbitcrypto_stream/rabbit/e/opt/2/2gcc -m64 -march=k8 -O3 -fomit-frame-pointer (4.5.2)
79641.00rabbitcrypto_stream/rabbit/e/opt/1/2gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
79661.00rabbitcrypto_stream/rabbit/e/opt/1/3gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
79661.00rabbitcrypto_stream/rabbit/e/opt/1/4gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
120651.52rabbitcrypto_stream/rabbit/e/opt/1/1gcc -m64 -march=barcelona -Os -fomit-frame-pointer
120711.52rabbitcrypto_stream/rabbit/e/opt/2/1gcc -m64 -march=barcelona -O3 -fomit-frame-pointer
139841.76rabbitcrypto_stream/rabbit/e/refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer
rabbitcrypto_stream/rabbit/e/opt/2/4gcc -m64 -O3 -fomit-frame-pointer
rabbitcrypto_stream/rabbit/e/opt/2/5gcc -m64 -O3 -fomit-frame-pointer
118021.00salsa20crypto_stream/salsa20/e/amd64-3gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
128661.09salsa20crypto_stream/salsa20/e/mergedgcc -m64 -march=barcelona -O -fomit-frame-pointer
132851.13salsa20crypto_stream/salsa20/e/amd64-2gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer
138711.18salsa20crypto_stream/salsa20/e/regsgcc -m64 -march=core2 -O3 -fomit-frame-pointer
151851.29salsa20crypto_stream/salsa20/e/refgcc -O3 -fomit-frame-pointer
155731.32salsa20crypto_stream/salsa20/amd64_xmm6gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer
157091.33salsa20crypto_stream/salsa20/e/amd64-xmm6gcc -m64 -march=nocona -O3 -fomit-frame-pointer
163351.38salsa20crypto_stream/salsa20/e/amd64-1gcc -funroll-loops -m64 -O2 -fomit-frame-pointer
172091.46salsa20crypto_stream/salsa20/refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer
177361.50salsa20crypto_stream/salsa20/e/amd64-xmm5gcc -m64 -march=nocona -O2 -fomit-frame-pointer
190811.62salsa20crypto_stream/salsa20/e/amd64-xmm2gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer
208801.77salsa20crypto_stream/salsa20/e/amd64-xmmgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/sparcgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-2gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-3gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-athlongcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-pmgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-xmm4gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
salsa20crypto_stream/salsa20/x86_xmm5gcc -m64 -O3 -fomit-frame-pointer
72911.00salsa2012crypto_stream/salsa2012/e/mergedgcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.5.2)
75301.03salsa2012crypto_stream/salsa2012/e/amd64-3gcc -funroll-loops -m64 -O3 -fomit-frame-pointer
81521.12salsa2012crypto_stream/salsa2012/e/amd64-2gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer
81891.12salsa2012crypto_stream/salsa2012/e/regsgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer
90761.24salsa2012crypto_stream/salsa2012/e/refgcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.5.2)
100721.38salsa2012crypto_stream/salsa2012/amd64_xmm6gcc -funroll-loops -m64 -O3 -fomit-frame-pointer
100961.38salsa2012crypto_stream/salsa2012/e/amd64-1gcc -m64 -march=core2 -O2 -fomit-frame-pointer
101201.39salsa2012crypto_stream/salsa2012/e/amd64-xmm6gcc -march=barcelona -Os -fomit-frame-pointer
112261.54salsa2012crypto_stream/salsa2012/refgcc -funroll-loops -O3 -fomit-frame-pointer
114031.56salsa2012crypto_stream/salsa2012/e/amd64-xmm5gcc -m64 -march=nocona -O2 -fomit-frame-pointer
121881.67salsa2012crypto_stream/salsa2012/e/amd64-xmm2gcc -m64 -march=nocona -O2 -fomit-frame-pointer
132011.81salsa2012crypto_stream/salsa2012/e/amd64-xmmgcc -m64 -march=k8 -Os -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/sparcgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-2gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-3gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-athlongcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-pmgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-xmm4gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
salsa2012crypto_stream/salsa2012/x86_xmm5gcc -m64 -O3 -fomit-frame-pointer
51401.00salsa208crypto_stream/salsa208/e/mergedgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer (4.5.2)
53941.05salsa208crypto_stream/salsa208/e/amd64-3gcc -march=barcelona -O3 -fomit-frame-pointer
58001.13salsa208crypto_stream/salsa208/e/amd64-2gcc -funroll-loops -m64 -O3 -fomit-frame-pointer
60981.19salsa208crypto_stream/salsa208/e/regsgcc -m64 -march=core2 -O3 -fomit-frame-pointer
71641.39salsa208crypto_stream/salsa208/e/amd64-1gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer
73051.42salsa208crypto_stream/salsa208/amd64_xmm6gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer
73611.43salsa208crypto_stream/salsa208/e/amd64-xmm6gcc -m64 -march=nocona -O2 -fomit-frame-pointer
74921.46salsa208crypto_stream/salsa208/e/refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer
82941.61salsa208crypto_stream/salsa208/e/amd64-xmm5gcc -march=nocona -O2 -fomit-frame-pointer
87121.69salsa208crypto_stream/salsa208/e/amd64-xmm2gcc -funroll-loops -m64 -Os -fomit-frame-pointer
89931.75salsa208crypto_stream/salsa208/refgcc -m64 -march=core2 -O3 -fomit-frame-pointer
93581.82salsa208crypto_stream/salsa208/e/amd64-xmmgcc -m64 -march=nocona -O2 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/ppc-altivecgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/sparcgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-1gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-2gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-3gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-athlongcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-mmxgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-pmgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-xmmgcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-xmm2gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-xmm4gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/e/x86-xmm5gcc -m64 -O3 -fomit-frame-pointer
salsa208crypto_stream/salsa208/x86_xmm5gcc -m64 -O3 -fomit-frame-pointer
70041.00snow20crypto_stream/snow20/e/benchmarks/snow-2.0gcc -fno-schedule-insns -O3 -fomit-frame-pointer (4.5.2)
86041.00sosemanukcrypto_stream/sosemanuk/e/submissions/sosemanukgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer (4.5.2)
94081.09sosemanukcrypto_stream/sosemanuk/cryptoppg++ -march=barcelona -O3 -fomit-frame-pointer
139761.00tpycrypto_stream/tpy/e/tpygcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.5.2)
104961.00tpy6crypto_stream/tpy6/e/tpy6gcc -funroll-loops -m64 -O3 -fomit-frame-pointer (4.5.2)
175661.00tpypycrypto_stream/tpypy/e/tpypygcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer (4.5.2)
68771.00triviumcrypto_stream/trivium/e/submissions/triviumgcc -m64 -march=nocona -O3 -fomit-frame-pointer (4.5.2)
124061.00xsalsa20crypto_stream/xsalsa20/refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer