Implementation notes: aarch64, rockpi4, crypto_hash/fugue256

Computer: rockpi4
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: fugue256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3634442800 0 056172 800 768ANSI_opt32clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091120190816
3675750468 0 063788 800 768ANSI_opt64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091120190816
3675750468 0 063852 800 768ANSI_opt64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091120190816
3675750468 0 063852 800 768ANSI_opt64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091120190816
3758340888 0 054268 800 768ANSI_opt32clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091120190816
3758340888 0 054268 800 768ANSI_opt32clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091120190816
3758331048 0 044514 808 768sphlibclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091120190816
3799654620 0 067996 800 768ANSI_opt64clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091120190816
3923553856 0 066911 896 744ANSI_opt64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019091120190816
3923552988 0 064079 896 744ANSI_opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091120190816
3964851392 0 061679 880 736ANSI_opt64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019091120190816
3964851392 0 061679 880 736ANSI_opt64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
4006153984 0 066183 896 760ANSI_opt64gcc_-O3_-fomit-frame-pointer2019091120190816
4006153880 0 067455 896 760ANSI_opt64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019091120190816
4006132672 0 046000 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
4047453296 0 066839 896 760ANSI_opt64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
4088751396 0 061631 880 736ANSI_opt64gcc_-Os_-fomit-frame-pointer2019091120190816
4088751144 0 061375 880 736ANSI_opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091120190816
4130032420 0 046201 904 760sphlibgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
4171331988 0 044417 904 760sphlibgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
4171331776 0 042264 880 736sphlibgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
4212631184 0 044642 808 768sphlibclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091120190816
4212631184 0 044642 808 768sphlibclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091120190816
4253951396 0 061631 880 736ANSI_opt64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
4253931776 0 042264 880 736sphlibgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091120190816
4295232620 0 045073 904 760sphlibgcc_-O3_-fomit-frame-pointer2019091120190816
4295231836 0 042264 880 736sphlibgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
4295232740 0 045297 904 760sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091120190816
4336542164 0 055703 896 760ANSI_opt32gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
4336543224 0 054327 896 744ANSI_opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091120190816
4377843436 0 055647 896 760ANSI_opt32gcc_-O3_-fomit-frame-pointer2019091120190816
4377843356 0 056943 896 760ANSI_opt32gcc_-funroll-loops_-O3_-fomit-frame-pointer2019091120190816
4377842456 0 055607 896 744ANSI_opt32gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
4419142200 0 054375 896 760ANSI_opt32gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
4419132896 0 044176 896 744sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091120190816
4460433020 0 046849 904 760sphlibgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091120190816
4543041900 0 052191 880 736ANSI_opt32gcc_-funroll-loops_-Os_-fomit-frame-pointer2019091120190816
4666941908 0 052143 880 736ANSI_opt32gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
4666954744 0 065815 896 744ANSI_opt64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
4666935280 0 049728 896 744sphlibgcc_-funroll-loops_-O_-fomit-frame-pointer2019091120190816
4666935280 0 049728 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
4708233940 0 045168 896 744sphlibgcc_-O_-fomit-frame-pointer2019091120190816
4790844760 0 055839 896 744ANSI_opt32gcc_-O_-fomit-frame-pointer2019091120190816
4790844760 0 055839 896 744ANSI_opt32gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
4790844924 0 059215 896 744ANSI_opt32gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
4790844760 0 055839 896 744ANSI_opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091120190816
4790854848 0 069135 896 744ANSI_opt64gcc_-funroll-loops_-O_-fomit-frame-pointer2019091120190816
4790854848 0 069135 896 744ANSI_opt64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
5121253072 0 065359 896 760ANSI_opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091120190816
5162553784 0 064767 896 744ANSI_opt64gcc_-O2_-fomit-frame-pointer2019091120190816
5658143224 0 054215 896 744ANSI_opt32gcc_-O2_-fomit-frame-pointer2019091120190816
5699443336 0 056407 896 744ANSI_opt32gcc_-funroll-loops_-O2_-fomit-frame-pointer2019091120190816
5782043436 0 055743 896 760ANSI_opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091120190816
5782031184 0 044594 808 768sphlibclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091120190816
5782031184 0 044642 808 768sphlibclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091120190816
5823333504 0 046728 896 744sphlibgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091120190816
5905950468 0 063852 800 768ANSI_opt64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091120190816
5947253468 0 066615 896 744ANSI_opt64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
5988541900 0 052191 880 736ANSI_opt32gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
5988532784 0 043952 896 744sphlibgcc_-O2_-fomit-frame-pointer2019091120190816
6195040888 0 054220 800 768ANSI_opt32clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091120190816
6195040888 0 054268 800 768ANSI_opt32clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091120190816
7021031936 0 043048 896 744sphlibgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
7227531836 0 042264 880 736sphlibgcc_-Os_-fomit-frame-pointer2019091120190816
7268853344 0 065527 896 760ANSI_opt64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
7268831836 0 042264 880 736sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091120190816
7310142340 0 053287 896 744ANSI_opt32gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
7557953316 0 064247 896 744ANSI_opt64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
8425241908 0 052143 880 736ANSI_opt32gcc_-Os_-fomit-frame-pointer2019091120190816
8425241908 0 052143 880 736ANSI_opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091120190816
10118554744 0 065815 896 744ANSI_opt64gcc_-O_-fomit-frame-pointer2019091120190816
10118554736 0 065815 896 744ANSI_opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091120190816
10614133940 0 045168 896 744sphlibgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
10614133940 0 045168 896 744sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091120190816
10820644924 0 059215 896 744ANSI_opt32gcc_-funroll-loops_-O_-fomit-frame-pointer2019091120190816
170982172636 0 0189967 880 744ANSI_opt64gcc2019091120190816
182133123176 0 0140511 880 744ANSI_opt32gcc2019091120190816
182133123176 0 0140511 880 744ANSI_opt32gcc_-funroll-loops2019091120190816
182546123176 0 0140511 880 744ANSI_opt32cc2019091120190816
20278380520 0 098048 880 744sphlibgcc2019091120190816
34981180520 0 098048 880 744sphlibcc2019091120190816
34981180520 0 098048 880 744sphlibgcc_-funroll-loops2019091120190816
432411172636 0 0189967 880 744ANSI_opt64gcc_-funroll-loops2019091120190816
433237172636 0 0189967 880 744ANSI_opt64cc2019091120190816

Compiler output

Implementation: ANSI_opt32
Security model: unknown
Compiler: cc
hash.c: In file included from aestab.h:4,
hash.c: from fugue_256_code.h:13,
hash.c: from hash.c:7:
hash.c: hash.c: In function 'crypto_hash_fugue256_ANSI_opt32':
hash.c: aestab_t.h:19:26: warning: result of '1718686559 << 24' requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:32:27: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '1718686559 << 8' requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:32:27: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:26: warning: result of '888717896 << 24' requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:33:67: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '888717896 << 8' requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: ...

Number of similar (compiler,implementation) pairs: 23, namely:
CompilerImplementations
cc ANSI_opt32
gcc ANSI_opt32
gcc -O2 -fomit-frame-pointer ANSI_opt32
gcc -O3 -fomit-frame-pointer ANSI_opt32
gcc -O -fomit-frame-pointer ANSI_opt32
gcc -Os -fomit-frame-pointer ANSI_opt32
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ANSI_opt32
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ANSI_opt32
gcc -fno-schedule-insns -O -fomit-frame-pointer ANSI_opt32
gcc -fno-schedule-insns -Os -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops ANSI_opt32
gcc -funroll-loops -O2 -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -O3 -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -O -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -Os -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ANSI_opt32
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ANSI_opt32
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ANSI_opt32
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ANSI_opt32
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ANSI_opt32

Compiler output

Implementation: ANSI_opt32
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
hash.c: hash.c:32:27: warning: signed shift result (0x6671135F000000) requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ~~^ ~~
hash.c: hash.c:32:27: warning: signed shift result (0x6671135F00) requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:36: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ~~^ ~
hash.c: hash.c:33:67: warning: signed shift result (0x34F8C248000000) requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ~~^ ~~
hash.c: hash.c:33:67: warning: signed shift result (0x34F8C24800) requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:36: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ~~^ ~
hash.c: 4 warnings generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ANSI_opt32
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ANSI_opt32
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ANSI_opt32
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ANSI_opt32
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ANSI_opt32
clang -O3 -fomit-frame-pointer -Qunused-arguments ANSI_opt64
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ANSI_opt64
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ANSI_opt64
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ANSI_opt64
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ANSI_opt64

Compiler output

Implementation: ANSI_opt64
Security model: unknown
Compiler: cc
hash.c: In file included from aestab.h:4,
hash.c: from fugue_256_code.h:13,
hash.c: from hash.c:7:
hash.c: hash.c: In function 'crypto_hash_fugue256_ANSI_opt64':
hash.c: aestab_t.h:19:26: warning: result of '1718686559 << 24' requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:32:27: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '1718686559 << 8' requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:32:27: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:26: warning: result of '888717896 << 24' requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:33:67: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '888717896 << 8' requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: ...

Number of similar (compiler,implementation) pairs: 23, namely:
CompilerImplementations
cc ANSI_opt64
gcc ANSI_opt64
gcc -O2 -fomit-frame-pointer ANSI_opt64
gcc -O3 -fomit-frame-pointer ANSI_opt64
gcc -O -fomit-frame-pointer ANSI_opt64
gcc -Os -fomit-frame-pointer ANSI_opt64
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ANSI_opt64
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ANSI_opt64
gcc -fno-schedule-insns -O -fomit-frame-pointer ANSI_opt64
gcc -fno-schedule-insns -Os -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops ANSI_opt64
gcc -funroll-loops -O2 -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -O3 -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -O -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -Os -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ANSI_opt64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ANSI_opt64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ANSI_opt64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ANSI_opt64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ANSI_opt64