Implementation notes: armeabi, novena, crypto_aead/romulusm

Computer: novena
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20220506
Operation: crypto_aead
Primitive: romulusm
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
103968613244 0 036269 424 792aadomn/armv7aclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060620220506
184895110252 0 021831 420 776aadomn/armv7mgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060620220506
18489519684 0 019722 416 776aadomn/armv7mgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060620220506
19461599644 0 019967 420 776aadomn/armv7mgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060620220506
194975922040 640 033623 1060 776aadomn/opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060620220506
232739125008 640 039393 1064 784aadomn/opt32clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060620220506
235219226808 640 049649 1116 792aadomn/opt32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060620220506
251100524592 640 041273 1064 776aadomn/opt32clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060620220506
298544413192 640 022751 1052 776aadomn/opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060620220506
312065415092 640 025415 1060 776aadomn/opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060620220506
316946020428 640 035363 1060 776aadomn/opt32clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060620220506
326946713936 640 024015 1060 776aadomn/opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060620220506
345148219368 640 034515 1060 776aadomn/opt32clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060620220506

Compiler output

Implementation: aadomn/armv7a
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
skinny128.S: skinny128.S:215:2: error: invalid instruction
skinny128.S: vld1.8 {q0}, [r1]
skinny128.S: ^
skinny128.S: skinny128.S:216:2: error: invalid instruction
skinny128.S: vld1.8 {q3}, [r2]
skinny128.S: ^
skinny128.S: skinny128.S:217:2: error: invalid instruction
skinny128.S: vld1.8 {q4}, [r3]
skinny128.S: ^
skinny128.S: skinny128.S:218:2: error: invalid instruction
skinny128.S: vld1.8 {q5}, [r4]
skinny128.S: ^
skinny128.S: <instantiation>:42:2: error: instruction requires: NEON
skinny128.S: vmov.i8 d12, #0x0f
skinny128.S: ^
skinny128.S: skinny128.S:219:2: note: while in macro instantiation
skinny128.S: load_vtbl
skinny128.S: ^
skinny128.S: <instantiation>:3:2: error: instruction requires: NEON
skinny128.S: vand d2, d0, d12
skinny128.S: ^
skinny128.S: <instantiation>:1:1: note: while in macro instantiation
skinny128.S: sbox_ark d6, d7, d8, d9, d10, d11
skinny128.S: ^
skinny128.S: skinny128.S:225:2: note: while in macro instantiation
skinny128.S: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE aadomn/armv7a
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE aadomn/armv7a
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE aadomn/armv7a
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE aadomn/armv7a

Compiler output

Implementation: aadomn/armv7a
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
skinny128.S: skinny128.S: Assembler messages:
skinny128.S: skinny128.S:219: Error: selected FPU does not support instruction -- `vmov.i8 d12,#0x0f'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vand d2,d0,d12'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vand d3,d1,d12'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vshr.u8 d4,d0,#4'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vshr.u8 d5,d1,#4'
skinny128.S: skinny128.S:225: Error: selected processor does not support `vtbl.8 d0,{d26,d27},d2' in Thumb mode
skinny128.S: skinny128.S:225: Error: selected processor does not support `vtbl.8 d1,{d26,d27},d3' in Thumb mode
skinny128.S: skinny128.S:225: Error: selected processor does not support `vtbl.8 d4,{d24,d25},d4' in Thumb mode
skinny128.S: skinny128.S:225: Error: selected processor does not support `vtbl.8 d5,{d24,d25},d5' in Thumb mode
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `veor d0,d0,d4'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `veor d1,d1,d5'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `veor d16,d6,d8'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vshr.u8 d4,d0,#4'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vshr.u8 d5,d1,#4'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `veor d18,d18,d10'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vand d2,d0,d12'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vand d3,d1,d12'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vshr.u8 d0,d0,#7'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `vshr.u8 d1,d1,#7'
skinny128.S: skinny128.S:225: Error: selected FPU does not support instruction -- `veor d18,d18,d16'
skinny128.S: skinny128.S:225: Error: selected processor does not support `vtbl.8 d4,{d28,d29},d4' in Thumb mode
skinny128.S: skinny128.S:225: Error: selected processor does not support `vtbl.8 d5,{d28,d29},d5' in Thumb mode
skinny128.S: skinny128.S:225: Error: selected processor does not support `vtbl.8 d2,{d30,d31},d2' in Thumb mode
skinny128.S: skinny128.S:225: Error: selected processor does not support `vtbl.8 d3,{d30,d31},d3' in Thumb mode
skinny128.S: ...

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

Compiler output

Implementation: aadomn/armv7m
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
skinny128_core.s: skinny128_core.s:143:2: error: invalid instruction, any one of the following would fix this:
skinny128_core.s: sub.w r0, #128 // reset rtk1
skinny128_core.s: ^
skinny128_core.s: skinny128_core.s:143:5: note: operand must be a register in range [r0, r12] or r14
skinny128_core.s: sub.w r0, #128 // reset rtk1
skinny128_core.s: ^
skinny128_core.s: skinny128_core.s:143:13: note: operand must be a register in range [r0, r12] or r14
skinny128_core.s: sub.w r0, #128 // reset rtk1
skinny128_core.s: ^
skinny128_core.s: skinny128_core.s:143:9: note: operand must be a register sp
skinny128_core.s: sub.w r0, #128 // reset rtk1
skinny128_core.s: ^
skinny128_core.s: skinny128_core.s:149:2: error: invalid instruction, any one of the following would fix this:
skinny128_core.s: sub.w r0, #128 // reset rtk1
skinny128_core.s: ^
skinny128_core.s: skinny128_core.s:149:5: note: operand must be a register in range [r0, r12] or r14
skinny128_core.s: sub.w r0, #128 // reset rtk1
skinny128_core.s: ^
skinny128_core.s: skinny128_core.s:149:13: note: operand must be a register in range [r0, r12] or r14
skinny128_core.s: sub.w r0, #128 // reset rtk1
skinny128_core.s: ^
skinny128_core.s: skinny128_core.s:149:9: note: operand must be a register sp
skinny128_core.s: sub.w r0, #128 // reset rtk1
skinny128_core.s: ^
skinny128_core.s: skinny128_core.s:157:19: error: too many operands for instruction
skinny128_core.s: ...

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

Compiler output

Implementation: aadomn/armv7m
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_romulusm.a(encrypt.o): in function `crypto_aead_romulusm_aadomn_armv7m_constbranchindex_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `tk_schedule_23'
try.c: /usr/bin/ld: libcrypto_aead_romulusm.a(romulus_m.o): in function `romulusm_process_ad':
try.c: romulus_m.c:(.text+0x...): undefined reference to `tk_schedule_123'
try.c: /usr/bin/ld: romulus_m.c:(.text+0x...): undefined reference to `tk_schedule_123'
try.c: /usr/bin/ld: romulus_m.c:(.text+0x...): undefined reference to `tk_schedule_123'
try.c: /usr/bin/ld: romulus_m.c:(.text+0x...): undefined reference to `tk_schedule_123'
try.c: /usr/bin/ld: romulus_m.c:(.text+0x...): undefined reference to `tk_schedule_123'
try.c: /usr/bin/ld: libcrypto_aead_romulusm.a(romulus_m.o):romulus_m.c:(.text+0x...): more undefined references to `tk_schedule_123' follow
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE aadomn/armv7m

Compiler output

Implementation: aadomn/armv8a/onthefly
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
skinny128.S: skinny128.S:151:11: error: register expected
skinny128.S: ldr q0, [x1]
skinny128.S: ^
skinny128.S: skinny128.S:152:11: error: register expected
skinny128.S: ldr q4, [x2]
skinny128.S: ^
skinny128.S: skinny128.S:153:11: error: register expected
skinny128.S: ldr q5, [x3]
skinny128.S: ^
skinny128.S: skinny128.S:154:11: error: register expected
skinny128.S: ldr q6, [x4]
skinny128.S: ^
skinny128.S: skinny128.S:155:6: error: operand must be a register in range [r0, r15]
skinny128.S: adr x1, rconst
skinny128.S: ^
skinny128.S: <instantiation>:1:11: error: literal value out of range for directive
skinny128.S: ldr q20, =0x0b0c0e0a0d080f090304060205000701
skinny128.S: ^
skinny128.S: skinny128.S:156:2: note: while in macro instantiation
skinny128.S: prepare_encrypt
skinny128.S: ^
skinny128.S: <instantiation>:2:12: error: literal value out of range for directive
skinny128.S: ldr q21, =0x00000000000000020000000000000000
skinny128.S: ^
skinny128.S: skinny128.S:156:2: note: while in macro instantiation
skinny128.S: ...

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

Compiler output

Implementation: aadomn/armv8a/onthefly
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
skinny128.S: skinny128.S: Assembler messages:
skinny128.S: skinny128.S:151: Error: ARM register expected -- `ldr q0,[x1]'
skinny128.S: skinny128.S:152: Error: ARM register expected -- `ldr q4,[x2]'
skinny128.S: skinny128.S:153: Error: ARM register expected -- `ldr q5,[x3]'
skinny128.S: skinny128.S:154: Error: ARM register expected -- `ldr q6,[x4]'
skinny128.S: skinny128.S:155: Error: ARM register expected -- `adr x1,rconst'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q20,=0x0b0c0e0a0d080f090304060205000701'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q21,=0x00000000000000020000000000000000'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q22,=0x00000000000000000000000000000000'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q23,=0x09080b0a06050407030201000c0f0e0d'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q24,=0x0302010009080b0a1010101009080b0a'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q25,=0x000000000000000000000000ffffffff'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q26,=0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q27,=0x2e0e26062c0c34142a02220a00281830'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q28,=0xd1915111c1814101d090501080c00040'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q29,=0x1a181b190a080b091310121103000201'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q30,=0x65646363454443433534333385848180'
skinny128.S: skinny128.S:156: Error: ARM register expected -- `ldr q31,=0xe5e4e1e0c5c4c1c0a5a4a1a015141313'
skinny128.S: skinny128.S:157: Error: bad arguments to instruction -- `and v1.16b,v0.16b,v26.16b'
skinny128.S: skinny128.S:157: Error: bad instruction `ushr v2.16b,v0.16b,#4'
skinny128.S: skinny128.S:157: Error: bad instruction `tbl v0.16b,{v27.16b},v1.16b'
skinny128.S: skinny128.S:157: Error: bad instruction `tbl v2.16b,{v28.16b},v2.16b'
skinny128.S: skinny128.S:157: Error: ARM register expected -- `ldr d16,[x1],#8'
skinny128.S: skinny128.S:157: Error: bad arguments to instruction -- `eor v7.8b,v5.8b,v6.8b'
skinny128.S: skinny128.S:157: Error: bad arguments to instruction -- `eor v7.8b,v7.8b,v4.8b'
skinny128.S: ...

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

Compiler output

Implementation: aadomn/armv8a/precalculate
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
skinny128.S: skinny128.S:111:11: error: register expected
skinny128.S: ldr q0, [x1]
skinny128.S: ^
skinny128.S: skinny128.S:112:11: error: register expected
skinny128.S: ldr d3, [x2]
skinny128.S: ^
skinny128.S: <instantiation>:1:11: error: literal value out of range for directive
skinny128.S: ldr q21, =0x00000000000000020000000000000000
skinny128.S: ^
skinny128.S: skinny128.S:113:2: note: while in macro instantiation
skinny128.S: prepare_encrypt
skinny128.S: ^
skinny128.S: <instantiation>:2:12: error: literal value out of range for directive
skinny128.S: ldr q22, =0x0f0e0d0c0a0b09080304060205000701
skinny128.S: ^
skinny128.S: skinny128.S:113:2: note: while in macro instantiation
skinny128.S: prepare_encrypt
skinny128.S: ^
skinny128.S: <instantiation>:3:12: error: literal value out of range for directive
skinny128.S: ldr q23, =0x09080b0a06050407030201000c0f0e0d
skinny128.S: ^
skinny128.S: skinny128.S:113:2: note: while in macro instantiation
skinny128.S: prepare_encrypt
skinny128.S: ^
skinny128.S: <instantiation>:4:12: error: literal value out of range for directive
skinny128.S: ...

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

Compiler output

Implementation: aadomn/armv8a/precalculate
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
skinny128.S: skinny128.S: Assembler messages:
skinny128.S: skinny128.S:111: Error: ARM register expected -- `ldr q0,[x1]'
skinny128.S: skinny128.S:112: Error: ARM register expected -- `ldr d3,[x2]'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q21,=0x00000000000000020000000000000000'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q22,=0x0f0e0d0c0a0b09080304060205000701'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q23,=0x09080b0a06050407030201000c0f0e0d'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q24,=0x0302010009080b0a1010101009080b0a'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q25,=0x000000000000000000000000ffffffff'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q26,=0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q27,=0x2e0e26062c0c34142a02220a00281830'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q28,=0xd1915111c1814101d090501080c00040'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q29,=0x1a181b190a080b091310121103000201'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q30,=0x65646363454443433534333385848180'
skinny128.S: skinny128.S:113: Error: ARM register expected -- `ldr q31,=0xe5e4e1e0c5c4c1c0a5a4a1a015141313'
skinny128.S: skinny128.S:113: Error: bad arguments to instruction -- `eor v3.16b,v3.16b,v21.16b'
skinny128.S: skinny128.S:114: Error: bad arguments to instruction -- `and v1.16b,v0.16b,v26.16b'
skinny128.S: skinny128.S:114: Error: bad instruction `ushr v2.16b,v0.16b,#4'
skinny128.S: skinny128.S:114: Error: bad instruction `tbl v0.16b,{v27.16b},v1.16b'
skinny128.S: skinny128.S:114: Error: bad instruction `tbl v2.16b,{v28.16b},v2.16b'
skinny128.S: skinny128.S:114: Error: ARM register expected -- `ldr d5,[x3],#8'
skinny128.S: skinny128.S:114: Error: ARM register expected -- `eor v0.16b,v0.16b,v2.16b'
skinny128.S: skinny128.S:114: Error: bad arguments to instruction -- `eor v5.16b,v5.16b,v3.16b'
skinny128.S: skinny128.S:114: Error: bad instruction `ushr v2.16b,v0.16b,#3'
skinny128.S: skinny128.S:114: Error: bad arguments to instruction -- `and v1.16b,v0.16b,v26.16b'
skinny128.S: skinny128.S:114: Error: bad instruction `tbl v2.16b,{v30.16b-v31.16b},v2.16b'
skinny128.S: ...

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