Implementation notes: aarch64, pi3aplus, crypto_hash/sha3512

Computer: pi3aplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: sha3512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
39451232 0 010204 888 728opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
39467232 0 011509 896 744opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
39485240 0 010044 888 728opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
39532168 0 011998 824 736opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
39571224 0 09172 872 720opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
410021180 0 051997 768 736oncore64bitsclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
41102844 0 049904 840 728oncore64bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
41191864 0 049744 840 728oncore64bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
412042480 0 052792 840 744oncore64bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
41318764 0 048792 824 720oncore64bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
901266588 0 015919 832 728kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
901306368 0 014839 816 720kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
901506768 0 016399 832 728kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
901506836 0 017544 840 744kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
1360751488 0 023605 768 736oncore32bitsclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
1361753284 0 024920 840 744oncore32bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
1386101572 0 021968 840 728oncore32bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
1421031500 0 020848 824 720oncore32bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
1427821624 0 021840 840 728oncore32bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212

Compiler output

Implementation: kcp/optimized1600ARMv7A
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
keccak.s: keccak.s:1:1: error: unexpected token at start of statement
keccak.s: @
keccak.s: ^
keccak.s: keccak.s:2:1: error: unexpected token at start of statement
keccak.s: @ Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni,
keccak.s: ^
keccak.s: keccak.s:3:1: error: unexpected token at start of statement
keccak.s: @ Joan Daemen, Michaƫl Peeters, Gilles Van Assche and Ronny Van Keer, hereby
keccak.s: keccak.s:4:1: error: unexpected token at start of statement
keccak.s: @ denoted as "the implementer".
keccak.s: ^
keccak.s: keccak.s:5:1: error: unexpected token at start of statement
keccak.s: @
keccak.s: ^
keccak.s: keccak.s:6:1: error: unexpected token at start of statement
keccak.s: @ For more information, feedback or questions, please refer to our websites:
keccak.s: ^
keccak.s: keccak.s:7:1: error: unexpected token at start of statement
keccak.s: @ http://keccak.noekeon.org/
keccak.s: ^
keccak.s: keccak.s:8:1: error: unexpected token at start of statement
keccak.s: @ http://keyak.noekeon.org/
keccak.s: ^
keccak.s: keccak.s:9:1: error: unexpected token at start of statement
keccak.s: @ http://ketje.noekeon.org/
keccak.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600ARMv7A

Compiler output

Implementation: kcp/optimized1600ARMv7A
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
keccak.s: keccak.s: Assembler messages:
keccak.s: keccak.s:1: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:2: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:3: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:4: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:5: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:6: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:7: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:8: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:9: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:10: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:11: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:12: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:13: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:14: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:16: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:17: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:18: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:21: Error: unknown pseudo-op: `.syntax'
keccak.s: keccak.s:22: Error: unknown pseudo-op: `.fpu'
keccak.s: keccak.s:23: Error: unknown pseudo-op: `.arm'
keccak.s: keccak.s:26: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:27: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:29: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:56: Error: junk at end of line, first unrecognized character is `@'
keccak.s: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A

Compiler output

Implementation: kcp/optimized1600ARMv8A
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
keccak.s: <instantiation>:18:18: error: invalid operand for instruction
keccak.s: mov v5.2d[0], v0.2d[1] // v5 = (A[4] ^ A[14]) || ????
keccak.s: ^
keccak.s: keccak.s:524:5: note: while in macro instantiation
keccak.s: KeccakRound
keccak.s: ^
keccak.s: <instantiation>:23:18: error: invalid operand for instruction
keccak.s: mov v4.2d[1], v3.2d[0] // v4 = B[4] || B[3]
keccak.s: ^
keccak.s: keccak.s:524:5: note: while in macro instantiation
keccak.s: KeccakRound
keccak.s: ^
keccak.s: <instantiation>:57:18: error: invalid operand for instruction
keccak.s: mov x11, v20.2d[0] // x11 = A[1]
keccak.s: ^
keccak.s: keccak.s:524:5: note: while in macro instantiation
keccak.s: KeccakRound
keccak.s: ^
keccak.s: <instantiation>:2:18: error: invalid operand for instruction
keccak.s: mov x10, v25.2d[0]
keccak.s: ^
keccak.s: <instantiation>:59:5: note: while in macro instantiation
keccak.s: RhoPi v25.2d[0], x11, x10, 1 // A[10] = ROTL64(A[1], 1)
keccak.s: ^
keccak.s: keccak.s:524:5: note: while in macro instantiation
keccak.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600ARMv8A

Compiler output

Implementation: kcp/optimized1600AVX2
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-1600-AVX2.c: In file included from KeccakP-1600-AVX2.c:20:
KeccakP-1600-AVX2.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/x86intrin.h:29:
KeccakP-1600-AVX2.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/immintrin.h:28:
KeccakP-1600-AVX2.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX2.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
KeccakP-1600-AVX2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX2.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:143:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX2.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX2.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:173:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX2.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
KeccakP-1600-AVX2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX2.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:203:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX2.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX2.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:230:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX2.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
KeccakP-1600-AVX2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX2.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:253:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX2.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX2.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:274:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX2.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
KeccakP-1600-AVX2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX2.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:301:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX2.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600AVX2

Compiler output

Implementation: kcp/optimized1600AVX2
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakP-1600-AVX2.c: KeccakP-1600-AVX2.c:20:14: fatal error: x86intrin.h: No such file or directory
KeccakP-1600-AVX2.c: #include <x86intrin.h>
KeccakP-1600-AVX2.c: ^~~~~~~~~~~~~
KeccakP-1600-AVX2.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2

Compiler output

Implementation: kcp/optimized1600AVX512
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-1600-AVX512.c: In file included from KeccakP-1600-AVX512.c:24:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/smmintrin.h:27:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/tmmintrin.h:27:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/pmmintrin.h:27:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/emmintrin.h:27:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/xmmintrin.h:27:
KeccakP-1600-AVX512.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:143:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:173:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:203:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:230:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:253:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:274:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
KeccakP-1600-AVX512.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600AVX512

Compiler output

Implementation: kcp/optimized1600AVX512
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:24:10: fatal error: smmintrin.h: No such file or directory
KeccakP-1600-AVX512.c: #include <smmintrin.h>
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~
KeccakP-1600-AVX512.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX512
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX512
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX512
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX512

Namespace violations

Implementation: kcp/optimized1600ARMv8A
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_Sponge T
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_SpongeAbsorb T
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_SpongeAbsorbLastFewBits T
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_SpongeInitialize T
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_SpongeSqueeze T
KeccakSpongeWidth1600.o KeccakWidth1600_Sponge T
KeccakSpongeWidth1600.o KeccakWidth1600_SpongeAbsorb T
KeccakSpongeWidth1600.o KeccakWidth1600_SpongeAbsorbLastFewBits T
KeccakSpongeWidth1600.o KeccakWidth1600_SpongeInitialize T
KeccakSpongeWidth1600.o KeccakWidth1600_SpongeSqueeze T
keccak.o KeccakP1600_AddByte T
keccak.o KeccakP1600_AddBytes T
keccak.o KeccakP1600_ExtractAndAddBytes T
keccak.o KeccakP1600_ExtractBytes T
keccak.o KeccakP1600_Initialize T
keccak.o KeccakP1600_OverwriteBytes T
keccak.o KeccakP1600_OverwriteWithZeroes T
keccak.o KeccakP1600_Permute T
keccak.o KeccakP1600_Permute_12rounds T
keccak.o KeccakP1600_Permute_24rounds T
keccak.o KeccakP1600_Permute_Nrounds T

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A