Implementation notes: armeabi, berry2, crypto_core/keccakf160032bits

Computer: berry2
Microarchitecture: armeabi; Cortex-A7 (410fc075)
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20240107
Operation: crypto_core
Primitive: keccakf160032bits
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1151611340 0 019808 372 752inplace1600bigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012320240107
1330416984 0 036982 384 768inplace1600biclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012320240107
1419311620 0 020612 380 752inplace1600bigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012320240107
1967916992 0 025980 380 752inplace1600bigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012320240107
1969818216 0 029024 380 752inplace1600bigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012320240107
625988335 0 019251 388 752reference1600-32bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012320240107
1195164627 0 013723 388 752reference1600-32bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012320240107
1430784220 0 012796 380 752reference1600-32bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012320240107
2142864811 0 013911 388 752reference1600-32bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012320240107

Test failure

Implementation: inplace1600ARMv6M
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 19, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace1600ARMv6M
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace1600ARMv6M
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace1600ARMv6M
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace1600ARMv6M
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace1600ARMv7M
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace1600ARMv7M
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace1600ARMv7M
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace1600ARMv7M
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE optimized1600ARMv6Mu1
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE optimized1600ARMv6Mu1
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE optimized1600ARMv6Mu1
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE optimized1600ARMv6Mu1
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE optimized1600ARMv6Mu1
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE optimized1600ARMv6Mu2
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE optimized1600ARMv6Mu2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE optimized1600ARMv6Mu2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE optimized1600ARMv6Mu2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE optimized1600ARMv6Mu2
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE reference1600-32bits

Compiler output

Implementation: inplace1600ARMv6M
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-1600.S: KeccakP-1600.S:1486:5: error: out of range pc-relative fixup value
KeccakP-1600.S: adr r1, KeccakP1600_Permute_RoundConstants0Mod4
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:1501:5: error: out of range pc-relative fixup value
KeccakP-1600.S: adr r1, KeccakP1600_Permute_RoundConstants0
KeccakP-1600.S: ^

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

Compiler output

Implementation: inplace1600ARMv7A
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-1600.S: KeccakP-1600.S:519:5: error: instruction requires: armv6t2
KeccakP-1600.S: movw r8, #0x5555
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:520:5: error: instruction requires: armv6t2
KeccakP-1600.S: movt r8, #0x5555
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:521:5: error: instruction requires: armv6t2
KeccakP-1600.S: movw r9, #0x3333
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:522:5: error: instruction requires: armv6t2
KeccakP-1600.S: movt r9, #0x3333
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:523:5: error: instruction requires: armv6t2
KeccakP-1600.S: movw r10, #0x0F0F
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:524:5: error: instruction requires: armv6t2
KeccakP-1600.S: movt r10, #0x0F0F
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:525:5: error: instruction requires: armv6t2
KeccakP-1600.S: movw r11, #0x00FF
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:526:5: error: instruction requires: armv6t2
KeccakP-1600.S: movt r11, #0x00FF
KeccakP-1600.S: ^
KeccakP-1600.S: <instantiation>:9:5: error: invalid instruction
KeccakP-1600.S: ...

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

Compiler output

Implementation: inplace1600ARMv7A
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakP-1600.S: KeccakP-1600.S: Assembler messages:
KeccakP-1600.S: KeccakP-1600.S:1150: Error: unexpected character `w' in type specifier
KeccakP-1600.S: KeccakP-1600.S:1150: Error: bad instruction `b.w KeccakP1600_Permute_Round1Mod4'
KeccakP-1600.S: KeccakP-1600.S:1161: Error: unexpected character `w' in type specifier
KeccakP-1600.S: KeccakP-1600.S:1161: Error: bad instruction `b.w KeccakP1600_Permute_Round3Mod4'
KeccakP-1600.S: KeccakP-1600.S:1168: Error: unexpected character `w' in type specifier
KeccakP-1600.S: KeccakP-1600.S:1168: Error: bad instruction `b.w KeccakP1600_Permute_Round2Mod4'
KeccakP-1600.S: KeccakP-1600.S:1129: Error: invalid constant (7ac) after fixup

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

Compiler output

Implementation: inplace1600ARMv7M
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-1600.S: KeccakP-1600.S:517:5: error: invalid instruction, any one of the following would fix this:
KeccakP-1600.S: bic r3, r2, #7 @ r3 = offset & ~7
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:517:5: note: instruction requires: thumb2
KeccakP-1600.S: bic r3, r2, #7 @ r3 = offset & ~7
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:517:17: note: too many operands for instruction
KeccakP-1600.S: bic r3, r2, #7 @ r3 = offset & ~7
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:519:5: error: invalid instruction, any one of the following would fix this:
KeccakP-1600.S: ands r2, r2, #7 @ offset &= 7 (part not lane aligned)
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:519:5: note: instruction requires: thumb2
KeccakP-1600.S: ands r2, r2, #7 @ offset &= 7 (part not lane aligned)
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:519:18: note: operand must be a register in range [r0, r7]
KeccakP-1600.S: ands r2, r2, #7 @ offset &= 7 (part not lane aligned)
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:527:5: error: invalid instruction, any one of the following would fix this:
KeccakP-1600.S: ldrd r6, r7, [r0]
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:527:5: note: instruction requires: arm-mode
KeccakP-1600.S: ldrd r6, r7, [r0]
KeccakP-1600.S: ^
KeccakP-1600.S: KeccakP-1600.S:527:5: note: instruction requires: thumb2
KeccakP-1600.S: ...

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