Implementation notes: amd64, h8atom, crypto_aead/riverkeyakv2

Computer: h8atom
Microarchitecture: amd64; Bonnell (30661)
Architecture: amd64
CPU ID: GenuineIntel-00030661-bfebfbff
SUPERCOP version: 20240107
Operation: crypto_aead
Primitive: riverkeyakv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
131712126479 0 0129382 808 856T:generic64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
131747117308 0 0121336 760 896T:generic64lcgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
131943135084 0 0136508 816 856T:generic64lcclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
133098137110 0 0138540 816 856T:generic64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
134309139279 0 0140156 816 856T:generic64lcclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
135093131874 0 0135781 784 928T:generic64lcgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
135597123093 0 0125998 808 856T:generic64lcclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
138754141289 0 0142172 816 856T:generic64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
14151259112 0 063271 768 896T:generic32lcgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
14373870890 0 074940 792 928T:generic32lcgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
14471181292 0 085116 792 928T:generic32lcgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
145341139025 0 0142733 784 928T:generic64lcgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
145810135707 0 0139605 784 928T:generic64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
146216120322 0 0124336 760 896T:generic64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
14740661644 0 064574 808 856T:generic32lcclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
15202670318 0 074364 792 928T:generic32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
152803142173 0 0145861 784 928T:generic64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
154420142582 0 0142420 816 856T:generic64lcclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
15469358549 0 062703 768 896T:generic32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
15516974955 0 076308 816 856T:generic32lcclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
15561061319 0 064262 808 856T:generic32clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
15574379254 0 080060 816 856T:generic32lcclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
15666780216 0 084036 792 928T:generic32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
15782278126 0 078932 816 856T:generic32clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
16017473827 0 075180 816 856T:generic32clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
162547136124 0 0139068 816 856T:generic64clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
16466868395 0 071356 816 856T:generic32clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
168917134779 0 0137724 816 856T:generic64lcclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
169484144389 0 0144228 816 856T:generic64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
17053469059 0 072020 816 856T:generic32lcclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
172319128576 0 0131965 784 928T:generic64lcgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
17370582657 0 082228 816 856T:generic32lcclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18104167957 0 071492 792 928T:generic32lcgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
182238132412 0 0135797 784 928T:generic64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
18571069487 0 1267247 832 856T:referenceclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18814681193 0 080764 816 856T:generic32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
19196864695 0 1263047 832 856T:referenceclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
19644167383 0 070900 792 928T:generic32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
20118070914 0 1267727 832 856T:referenceclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
42996865946 0 1666848 800 928T:referencegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
45903968987 0 073501 784 928T:compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
53060756379 0 060020 816 856T:compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
81750944616 0 049806 808 856T:compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
87926343581 0 048912 760 896T:compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
90402951351 0 056348 816 856T:compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
97018654502 0 060101 784 928T:compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
106213151383 0 056701 784 928T:compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
222733059529 0 1259527 832 856T:referenceclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
261410860399 0 1662144 800 928T:referencegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
425391440981 552 569844 1704 864T:refclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
425449537496 648 565508 1800 864T:refnewclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
426668952593 0 1253454 824 856T:referenceclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
429808444629 648 573792 1800 864T:refnewclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
435712936451 552 564156 1704 864T:refclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
491391648598 0 1650784 776 896T:referencegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
549214467568 744 598491 2352 952T:refnewg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
560123265074 648 595790 2232 952T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
672028058758 0 1659720 800 928T:referencegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
701726934714 552 561183 1712 864T:refclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
705429235330 648 562103 1808 864T:refnewclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
730395454714 648 584693 2280 952T:refnewg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
733988552630 552 582447 2160 952T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
972650028608 552 553018 1648 856T:refclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
983164029047 648 553562 1744 856T:refnewclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
2051307350100 648 578562 2272 952T:refnewg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
2076364548656 552 577090 2160 952T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
3640109224907 552 551152 1640 920T:refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
3648940425516 648 551998 1736 920T:refnewg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212

Checksum failure

Implementation: T:compact
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
cc456237f3e36536d5b5f270ef172f23c7de80d857f825dc7796ed4a8be12cd5
Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact

Compiler output

Implementation: T:compact
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-200-compact.c: KeccakP-200-compact.c:20:36: warning: '/*' within block comment [-Wcomment]
KeccakP-200-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-200-compact.c: ^
KeccakP-200-compact.c: 1 warning generated.
KeccakP-800-compact.c: KeccakP-800-compact.c:27:36: warning: '/*' within block comment [-Wcomment]
KeccakP-800-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-800-compact.c: ^
KeccakP-800-compact.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
Keyakv2.cpp: In file included from Keyakv2.cpp:16:
Keyakv2.cpp: In file included from ./Keyakv2.h:21:
Keyakv2.cpp: ./Motorist.h:31:5: warning: 'auto_ptr<unsigned char>' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
Keyakv2.cpp: auto_ptr<UINT8> state;
Keyakv2.cpp: ^
Keyakv2.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward/auto_ptr.h:287:7: note: 'auto_ptr<unsigned char>' has been explicitly marked deprecated here
Keyakv2.cpp: } _GLIBCXX11_DEPRECATED_SUGGEST("std::unique_ptr");
Keyakv2.cpp: ^
Keyakv2.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++config.h:102:45: note: expanded from macro '_GLIBCXX11_DEPRECATED_SUGGEST'
Keyakv2.cpp: # define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
Keyakv2.cpp: ^
Keyakv2.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++config.h:94:19: note: expanded from macro '_GLIBCXX_DEPRECATED_SUGGEST'
Keyakv2.cpp: __attribute__ ((__deprecated__ ("use '" ALT "' instead")))
Keyakv2.cpp: ^
Keyakv2.cpp: 1 warning generated.
Motorist.cpp: In file included from Motorist.cpp:17:
Motorist.cpp: ./Motorist.h:31:5: warning: 'auto_ptr<unsigned char>' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
Motorist.cpp: auto_ptr<UINT8> state;
Motorist.cpp: ^
Motorist.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward/auto_ptr.h:287:7: note: 'auto_ptr<unsigned char>' has been explicitly marked deprecated here
Motorist.cpp: } _GLIBCXX11_DEPRECATED_SUGGEST("std::unique_ptr");
Motorist.cpp: ^
Motorist.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++config.h:102:45: note: expanded from macro '_GLIBCXX11_DEPRECATED_SUGGEST'
Motorist.cpp: # define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
Motorist.cpp: ^
Motorist.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++config.h:94:19: note: expanded from macro '_GLIBCXX_DEPRECATED_SUGGEST'
Motorist.cpp: __attribute__ ((__deprecated__ ("use '" ALT "' instead")))
Motorist.cpp: ^
Motorist.cpp: 1 warning generated.
encrypt.cpp: In file included from encrypt.cpp:22:
encrypt.cpp: In file included from ./Keyakv2.h:21:
encrypt.cpp: ./Motorist.h:31:5: warning: 'auto_ptr<unsigned char>' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
encrypt.cpp: auto_ptr<UINT8> state;
encrypt.cpp: ^
encrypt.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward/auto_ptr.h:287:7: note: 'auto_ptr<unsigned char>' has been explicitly marked deprecated here
encrypt.cpp: } _GLIBCXX11_DEPRECATED_SUGGEST("std::unique_ptr");
encrypt.cpp: ^
encrypt.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++config.h:102:45: note: expanded from macro '_GLIBCXX11_DEPRECATED_SUGGEST'
encrypt.cpp: # define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
encrypt.cpp: ^
encrypt.cpp: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/c++config.h:94:19: note: expanded from macro '_GLIBCXX_DEPRECATED_SUGGEST'
encrypt.cpp: __attribute__ ((__deprecated__ ("use '" ALT "' instead")))
encrypt.cpp: ^
encrypt.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:refnew
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:refnew
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:refnew
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:refnew

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keyakv2.cpp: In file included from Keyakv2.h:21,
Keyakv2.cpp: from Keyakv2.cpp:16:
Keyakv2.cpp: Motorist.h:31:5: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
Keyakv2.cpp: 31 | auto_ptr<UINT8> state;
Keyakv2.cpp: | ^~~~~~~~
Keyakv2.cpp: In file included from /usr/include/c++/11/memory:76,
Keyakv2.cpp: from Motorist.h:20,
Keyakv2.cpp: from Keyakv2.h:21,
Keyakv2.cpp: from Keyakv2.cpp:16:
Keyakv2.cpp: /usr/include/c++/11/bits/unique_ptr.h:57:28: note: declared here
Keyakv2.cpp: 57 | template<typename> class auto_ptr;
Keyakv2.cpp: | ^~~~~~~~
Motorist.cpp: In file included from Motorist.cpp:17:
Motorist.cpp: Motorist.h:31:5: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
Motorist.cpp: 31 | auto_ptr<UINT8> state;
Motorist.cpp: | ^~~~~~~~
Motorist.cpp: In file included from /usr/include/c++/11/memory:76,
Motorist.cpp: from Motorist.h:20,
Motorist.cpp: from Motorist.cpp:17:
Motorist.cpp: /usr/include/c++/11/bits/unique_ptr.h:57:28: note: declared here
Motorist.cpp: 57 | template<typename> class auto_ptr;
Motorist.cpp: | ^~~~~~~~
encrypt.cpp: In file included from Keyakv2.h:21,
encrypt.cpp: from encrypt.cpp:22:
encrypt.cpp: Motorist.h:31:5: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
encrypt.cpp: 31 | auto_ptr<UINT8> state;
encrypt.cpp: | ^~~~~~~~
encrypt.cpp: In file included from /usr/include/c++/11/memory:76,
encrypt.cpp: from Motorist.h:20,
encrypt.cpp: from Keyakv2.h:21,
encrypt.cpp: from encrypt.cpp:22:
encrypt.cpp: /usr/include/c++/11/bits/unique_ptr.h:57:28: note: declared here
encrypt.cpp: 57 | template<typename> class auto_ptr;
encrypt.cpp: | ^~~~~~~~

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:refnew
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:refnew
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:refnew
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:refnew