Implementation notes: amd64, icelake2, crypto_aead/riverkeyakv2

Computer: icelake2
Architecture: amd64
CPU ID: GenuineIntel-000706e5-bfebfbff
SUPERCOP version: 20221005
Operation: crypto_aead
Primitive: riverkeyakv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4034980738 0 084794 764 1088T:generic32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
4209670035 0 073466 764 1088T:generic32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
4279167678 0 070354 772 1024T:generic32clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
43595144433 0 0143554 772 1088T:generic64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
44117140400 0 0141098 772 1056T:generic64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
4428256356 0 059945 740 1056T:generic32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
44644139744 0 0143738 764 1088T:generic64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
4483182150 0 086210 764 1088T:generic32lcgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
46050123133 0 0127068 764 1088T:generic64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
46369133369 0 0136754 764 1088T:generic64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
4667286510 0 085154 772 1088T:generic32lcclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
4693182270 0 082498 772 1056T:generic32lcclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
4736270903 0 074338 764 1088T:generic32lcgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
4766982657 0 081762 772 1024T:generic32lcclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
4774062192 0 066156 764 1088T:generic32lcclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
48784114490 0 0118041 740 1056T:generic64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
4900880550 0 080618 772 1056T:generic32clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
4926257201 0 060785 740 1056T:generic32lcgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
50095132221 0 0134874 772 1024T:generic64clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
5021662193 0 065980 764 1088T:generic32clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
50402145183 0 0149202 764 1088T:generic64lcgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
5096968630 0 071306 772 1024T:generic32lcclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
5136084726 0 083210 772 1088T:generic32clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
53276137224 0 0140610 764 1088T:generic64lcgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
5401081193 0 080298 772 1024T:generic32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
54502147178 0 0147874 772 1056T:generic64lcclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
54632126360 0 0130292 764 1088T:generic64lcclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
54768151378 0 0150490 772 1088T:generic64lcclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
55725118223 0 0121785 740 1056T:generic64lcgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
5673766834 0 069658 764 1088T:generic32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
56791146647 0 0149418 764 1088T:generic64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
56868142582 0 0141954 772 1024T:generic64lcclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
5864970914 0 1267261 788 1024T:referenceclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
5968467817 0 070642 764 1088T:generic32lcgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
60861144389 0 0143762 772 1024T:generic64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
61896150456 0 0153210 764 1088T:generic64lcgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
6275969021 0 1266717 788 1056T:referenceclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
63617137671 0 0140322 772 1024T:generic64lcclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
6823773773 0 1269837 788 1088T:referenceclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
11645069866 0 074242 764 1088T:compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
12831364184 0 1665597 780 1088T:referencegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
14509963191 0 066258 772 1056T:compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
20453154013 0 059066 764 1088T:compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
21232441944 0 046737 740 1056T:compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
21710049974 0 054674 764 1088T:compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
21809950684 0 055466 772 1024T:compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
24161345165 0 051332 764 1088T:compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
38068558838 0 1258629 788 1024T:referenceclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
47655059522 0 1660989 780 1088T:referencegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
62056546725 0 1648553 756 1056T:referencegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
71394244869 648 573353 1756 1088T:refnewclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
71748139935 648 568401 1756 1056T:refnewclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
72217765968 680 593713 2268 1120T:refnewg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
73709137546 552 565937 1660 1056T:refclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
73985340821 552 569245 1660 1088T:refclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
74481863496 584 591404 2156 1120T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
76794857017 0 1657549 780 1088T:referencegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
79793353325 0 1255300 780 1088T:referenceclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
98698754298 680 580815 2292 1120T:refnewg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
98733752359 584 579035 2180 1120T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
101967735517 648 560608 1764 1024T:refnewclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
103087334395 552 559432 1668 1024T:refclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
142850828674 552 553465 1612 1088T:refclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
143786729203 648 553893 1708 1088T:refnewclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
263874447990 648 573095 2260 1120T:refnewg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
267656046388 552 571672 2148 1120T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
323086923019 648 546100 1716 1088T:refnewg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
323534022433 552 545493 1620 1088T:refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506

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-redhat-linux/12/../../../../include/c++/12/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-redhat-linux/12/../../../../include/c++/12/x86_64-redhat-linux/bits/c++config.h:2344: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-redhat-linux/12/../../../../include/c++/12/x86_64-redhat-linux/bits/c++config.h:2336: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-redhat-linux/12/../../../../include/c++/12/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-redhat-linux/12/../../../../include/c++/12/x86_64-redhat-linux/bits/c++config.h:2344: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-redhat-linux/12/../../../../include/c++/12/x86_64-redhat-linux/bits/c++config.h:2336: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-redhat-linux/12/../../../../include/c++/12/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-redhat-linux/12/../../../../include/c++/12/x86_64-redhat-linux/bits/c++config.h:2344: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-redhat-linux/12/../../../../include/c++/12/x86_64-redhat-linux/bits/c++config.h:2336: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++/12/memory:76,
Keyakv2.cpp: from Motorist.h:20:
Keyakv2.cpp: /usr/include/c++/12/bits/unique_ptr.h:64:28: note: declared here
Keyakv2.cpp: 64 | 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++/12/memory:76,
Motorist.cpp: from Motorist.h:20:
Motorist.cpp: /usr/include/c++/12/bits/unique_ptr.h:64:28: note: declared here
Motorist.cpp: 64 | 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++/12/memory:76,
encrypt.cpp: from Motorist.h:20:
encrypt.cpp: /usr/include/c++/12/bits/unique_ptr.h:64:28: note: declared here
encrypt.cpp: 64 | 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