Implementation notes: amd64, glyme, crypto_aead/riverkeyakv1

Computer: glyme
Architecture: amd64
CPU ID: GenuineIntel-00020652-bfebfbff
SUPERCOP version: 201720170105
Operation: crypto_aead
Primitive: riverkeyakv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
273924refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020520170105
273924refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020520170105
275768refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020520170105
275924refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020520170105
275944refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020520170105
275956refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020520170105
275988refgcc -funroll-loops -O2 -fomit-frame-pointer2017020520170105
276148refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020520170105
276184refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020520170105
304144refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020520170105
306024refgcc -march=nocona -O3 -fomit-frame-pointer2017020520170105
308700refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020520170105
309080refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020520170105
309684refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020520170105
309688refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020520170105
309920refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020520170105
310496refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020520170105
310924refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020520170105
310924refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020520170105
312028refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020520170105
312900refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020520170105
313780refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020520170105
313816refgcc -march=barcelona -O3 -fomit-frame-pointer2017020520170105
314164refgcc -funroll-loops -O3 -fomit-frame-pointer2017020520170105
314216refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020520170105
314220refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020520170105
314524refgcc -m64 -O3 -fomit-frame-pointer2017020520170105
315204refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020520170105
315204refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020520170105
315604refgcc -O3 -fomit-frame-pointer2017020520170105
315628refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020520170105
315840refgcc -march=k8 -O3 -fomit-frame-pointer2017020520170105
315856refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020520170105
394068refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020520170105
394224refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017020520170105
394428refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020520170105
394588refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020520170105
394716refgcc -funroll-loops -O -fomit-frame-pointer2017020520170105
394864refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020520170105
396156refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020520170105
430980refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020520170105
431092refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020520170105
458436refclang -O3 -fomit-frame-pointer -Qunused-arguments2017020520170105
458464refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
458488refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
458632refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
458640refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
458660refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020520170105
1078268refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020520170105
1083304refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020520170105
1083784refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020520170105
1091608refgcc -march=barcelona -O2 -fomit-frame-pointer2017020520170105
1093444refgcc -march=k8 -O2 -fomit-frame-pointer2017020520170105
1095688refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020520170105
1098152refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020520170105
1101000refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020520170105
1101904refgcc -O2 -fomit-frame-pointer2017020520170105
1111356refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020520170105
1116472refgcc -m64 -O2 -fomit-frame-pointer2017020520170105
1116964refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020520170105
1129496refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020520170105
1493012refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020520170105
1515216refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017020520170105
1516784refgcc -funroll-loops -Os -fomit-frame-pointer2017020520170105
1525060refgcc -march=nocona -O2 -fomit-frame-pointer2017020520170105
1533200refgcc -march=nocona -Os -fomit-frame-pointer2017020520170105
1536648refgcc -m64 -Os -fomit-frame-pointer2017020520170105
1537888refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020520170105
1541936refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020520170105
1543608refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020520170105
1551280refgcc -march=barcelona -Os -fomit-frame-pointer2017020520170105
1555424refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020520170105
1557244refgcc -Os -fomit-frame-pointer2017020520170105
1559580refgcc -march=k8 -Os -fomit-frame-pointer2017020520170105
1560472refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017020520170105
1563184refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017020520170105
1563828refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020520170105
1571388refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020520170105
1572024refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020520170105
1587688refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017020520170105
1588008refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020520170105
1590428refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020520170105
1591016refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020520170105
1594096refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020520170105
1614036refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020520170105
1626080refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020520170105
1630488refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020520170105
1831124refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020520170105
1836936refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020520170105
1838720refgcc -fno-schedule-insns -O -fomit-frame-pointer2017020520170105
1848220refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020520170105
1849476refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020520170105
1851444refgcc -march=barcelona -O -fomit-frame-pointer2017020520170105
1855300refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017020520170105
1857072refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020520170105
1857112refgcc -m64 -march=core2 -O -fomit-frame-pointer2017020520170105
1858764refgcc -m64 -O -fomit-frame-pointer2017020520170105
1859284refgcc -m64 -march=k8 -O -fomit-frame-pointer2017020520170105
1872700refgcc -O -fomit-frame-pointer2017020520170105
1897240refgcc -march=k8 -O -fomit-frame-pointer2017020520170105
3098992refgcc -march=nocona -O -fomit-frame-pointer2017020520170105
3126988refgcc -m64 -march=nocona -O -fomit-frame-pointer2017020520170105
9067216refgcc2017020520170105
9069436refgcc -funroll-loops2017020520170105
13260688refcc2017020520170105

Compiler output

Implementation: crypto_aead/riverkeyakv1/ref
Compiler: cc
KeccakDuplex.c: KeccakDuplex.c:63:9: warning: implicit declaration of function 'KeccakP800_12_StatePermute' is invalid in C99 [-Wimplicit-function-declaration]
KeccakDuplex.c: KeccakF_StatePermute(instance->gt;state);
KeccakDuplex.c: ^
KeccakDuplex.c: ./KeccakF-interface.h:53:30: note: expanded from macro 'KeccakF_StatePermute'
KeccakDuplex.c: #define KeccakF_StatePermute KeccakP800_12_StatePermute
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:85:9: warning: implicit declaration of function 'KeccakP800_12_StateXORPermuteExtract' is invalid in C99 [-Wimplicit-function-declaration]
KeccakDuplex.c: KeccakF_StateXORPermuteExtract(instance->gt;state, sigmaBegin, sigmaBeginByteLen/KeccakF_laneInBytes,
KeccakDuplex.c: ^
KeccakDuplex.c: ./KeccakF-interface.h:73:40: note: expanded from macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^
KeccakDuplex.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 7, namely:
CompilerImplementations
cc ref
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_aead/riverkeyakv1/ref
Compiler: gcc
KeccakDuplex.c: In file included from KeccakDuplex.h:17:0,
KeccakDuplex.c: from KeccakDuplex.c:15:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_Duplexing':
KeccakDuplex.c: KeccakF-interface.h:53:30: warning: implicit declaration of function 'KeccakP800_12_StatePermute' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StatePermute KeccakP800_12_StatePermute
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:63:9: note: in expansion of macro 'KeccakF_StatePermute'
KeccakDuplex.c: KeccakF_StatePermute(instance->gt;state);
KeccakDuplex.c: ^~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakF-interface.h:73:40: warning: implicit declaration of function 'KeccakP800_12_StateXORPermuteExtract' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakF-interface.h:73:40: note: in definition of macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 94, namely:
CompilerImplementations
gcc ref
gcc -O2 -fomit-frame-pointer ref
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops ref
gcc -funroll-loops -O2 -fomit-frame-pointer ref
gcc -funroll-loops -O3 -fomit-frame-pointer ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ref
gcc -m64 -O2 -fomit-frame-pointer ref
gcc -m64 -O3 -fomit-frame-pointer ref
gcc -m64 -O -fomit-frame-pointer ref
gcc -m64 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ref
gcc -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer ref
gcc -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -march=barcelona -O2 -fomit-frame-pointer ref
gcc -march=barcelona -O3 -fomit-frame-pointer ref
gcc -march=barcelona -O -fomit-frame-pointer ref
gcc -march=barcelona -Os -fomit-frame-pointer ref
gcc -march=k8 -O2 -fomit-frame-pointer ref
gcc -march=k8 -O3 -fomit-frame-pointer ref
gcc -march=k8 -O -fomit-frame-pointer ref
gcc -march=k8 -Os -fomit-frame-pointer ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref
gcc -march=nocona -O2 -fomit-frame-pointer ref
gcc -march=nocona -O3 -fomit-frame-pointer ref
gcc -march=nocona -O -fomit-frame-pointer ref
gcc -march=nocona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/riverkeyakv1/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
KeccakDuplex.c: In file included from KeccakDuplex.h:17:0,
KeccakDuplex.c: from KeccakDuplex.c:15:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_Duplexing':
KeccakDuplex.c: KeccakF-interface.h:53:30: warning: implicit declaration of function 'KeccakP800_12_StatePermute' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StatePermute KeccakP800_12_StatePermute
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:63:9: note: in expansion of macro 'KeccakF_StatePermute'
KeccakDuplex.c: KeccakF_StatePermute(instance->gt;state);
KeccakDuplex.c: ^~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakF-interface.h:73:40: warning: implicit declaration of function 'KeccakP800_12_StateXORPermuteExtract' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakF-interface.h:73:40: note: in definition of macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: In file included from KeccakDuplex.h:17:0,
KeccakDuplex.c: from KeccakDuplex.c:15:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_Duplexing':
KeccakDuplex.c: KeccakF-interface.h:53:30: warning: implicit declaration of function 'KeccakP800_12_StatePermute' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StatePermute KeccakP800_12_StatePermute
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:63:9: note: in expansion of macro 'KeccakF_StatePermute'
KeccakDuplex.c: KeccakF_StatePermute(instance->gt;state);
KeccakDuplex.c: ^~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakF-interface.h:73:40: warning: implicit declaration of function 'KeccakP800_12_StateXORPermuteExtract' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakF-interface.h:73:40: note: in definition of macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -m64 -march=barcelona -Os -fomit-frame-pointer ref