Implementation notes: riscv64, riscvunleashed000, crypto_core/invhrss701

Computer: riscvunleashed000
Microarchitecture: riscv64; U54 (sifive,u54-mc)
Architecture: riscv64
CPU ID: unknown CPU ID
SUPERCOP version: 20240107
Operation: crypto_core
Primitive: invhrss701
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
570932841656 0 010926 784 752simplergcc_-mcpu=sifive-u54_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010820231222
81737294932 0 08576 784 752simplergcc_-mcpu=sifive-u54_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010820231222
84635229742 0 010263 776 752simplerclang_-march=rv64imafdc_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
84644859742 0 010263 776 752simplerclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
85034273740 0 08175 768 745simplerclang_-march=rv64imafdc_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
85531602740 0 09837 776 752simplerclang_-march=rv64imafdc_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
85532870740 0 09837 776 752simplerclang_-march=rv64imafdc_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
96559938826 0 07854 768 752simplergcc_-mcpu=sifive-u54_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010820231222
101430910878 0 08289 768 752simplergcc_-mcpu=sifive-u54_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010820231222
1177169962034 0 011246 776 752refgcc_-mcpu=sifive-u54_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231222
1274662161378 0 010475 776 752refclang_-march=rv64imafdc_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
1274815651378 0 010475 776 752refclang_-march=rv64imafdc_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
1274947341378 0 010899 776 752refclang_-march=rv64imafdc_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010720231222
1274973981378 0 010899 776 752refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
1286920361350 0 08781 768 745refclang_-march=rv64imafdc_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010820231222
1480538201166 0 08728 776 752refgcc_-mcpu=sifive-u54_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231222
1618914341152 0 08531 768 752refgcc_-mcpu=sifive-u54_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231222
1648701141206 0 08164 760 752refgcc_-mcpu=sifive-u54_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231222

Compiler output

Implementation: faster
Security model: constbranchindex
Compiler: clang -march=rv64imafdc -mtune=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
core.c: In file included from core.c:4:
core.c: In file included from /usr/lib/llvm-10/lib/clang/10.0.0/include/immintrin.h:14:
core.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:50:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
core.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:129:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
core.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:159:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
core.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:189:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
core.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:216:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
core.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:239:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
core.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:260:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
core.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:287:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
core.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
core.c: ...

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

Compiler output

Implementation: faster
Security model: constbranchindex
Compiler: gcc -mcpu=sifive-u54 -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
core.c: core.c:4:10: fatal error: immintrin.h: No such file or directory
core.c: 4 | #include <immintrin.h>
core.c: | ^~~~~~~~~~~~~
core.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -mcpu=sifive-u54 -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE faster
gcc -mcpu=sifive-u54 -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE faster
gcc -mcpu=sifive-u54 -O -fomit-frame-pointer -fwrapv -fPIC -fPIE faster
gcc -mcpu=sifive-u54 -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE faster

Compiler output

Implementation: faster921
Security model: constbranchindex
Compiler: clang -march=rv64imafdc -mtune=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
core.S: core.S:9:9: error: unrecognized operand modifier
core.S: pushq %rbp
core.S: ^
core.S: core.S:9:9: error: unknown operand
core.S: pushq %rbp
core.S: ^
core.S: core.S:12:8: error: unrecognized operand modifier
core.S: xorl %ecx, %ecx
core.S: ^
core.S: core.S:12:8: error: unknown operand
core.S: xorl %ecx, %ecx
core.S: ^
core.S: core.S:13:12: error: unrecognized operand modifier
core.S: vpcmpeqd %ymm4, %ymm4, %ymm4
core.S: ^
core.S: core.S:13:12: error: unknown operand
core.S: vpcmpeqd %ymm4, %ymm4, %ymm4
core.S: ^
core.S: core.S:14:8: error: unrecognized operand modifier
core.S: movq %rsp, %rbp
core.S: ^
core.S: core.S:14:8: error: unknown operand
core.S: movq %rsp, %rbp
core.S: ^
core.S: core.S:16:9: error: unrecognized operand modifier
core.S: ...

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

Compiler output

Implementation: faster921
Security model: constbranchindex
Compiler: gcc -mcpu=sifive-u54 -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
core.S: core.c: Assembler messages:
core.S: core.c:9: Error: unrecognized opcode `pushq %rbp'
core.S: core.c:12: Error: unrecognized opcode `xorl %ecx,%ecx'
core.S: core.c:13: Error: unrecognized opcode `vpcmpeqd %ymm4,%ymm4,%ymm4'
core.S: core.c:14: Error: unrecognized opcode `movq %rsp,%rbp'
core.S: core.c:16: Error: unrecognized opcode `pushq %r13'
core.S: core.c:17: Error: unrecognized opcode `pushq %r12'
core.S: core.c:18: Error: unrecognized opcode `pushq %rbx'
core.S: core.c:22: Error: unrecognized opcode `movq %rdi,%rbx'
core.S: core.c:23: Error: unrecognized opcode `andq $-32,%rsp'
core.S: core.c:24: Error: unrecognized opcode `subq $5568,%rsp'
core.S: core.c:25: Error: unrecognized opcode `movzbl 1400(%rsi),%eax'
core.S: core.c:26: Error: unrecognized opcode `vmovdqa .LC2(%rip),%ymm1'
core.S: core.c:27: Error: unrecognized opcode `vmovdqa .LC3(%rip),%ymm3'
core.S: core.c:28: Error: unrecognized opcode `vmovdqa .LC4(%rip),%ymm5'
core.S: core.c:29: Error: unrecognized opcode `leaq 864(%rsp),%rdi'
core.S: core.c:30: Error: unrecognized opcode `notl %eax'
core.S: core.c:31: Error: unrecognized opcode `movl %eax,%r8d'
core.S: core.c:32: Error: unrecognized opcode `andl $3,%eax'
core.S: core.c:33: Error: unrecognized opcode `leal -3(%rax),%edx'
core.S: core.c:34: Error: unrecognized opcode `andl $3,%r8d'
core.S: core.c:35: Error: unrecognized opcode `movl %edx,%eax'
core.S: core.c:36: Error: unrecognized opcode `sarl $5,%eax'
core.S: core.c:37: Error: unrecognized opcode `andl %r8d,%eax'
core.S: core.c:38: Error: unrecognized opcode `leal 1(%rax),%r8d'
core.S: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -mcpu=sifive-u54 -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE faster921
gcc -mcpu=sifive-u54 -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE faster921
gcc -mcpu=sifive-u54 -O -fomit-frame-pointer -fwrapv -fPIC -fPIE faster921
gcc -mcpu=sifive-u54 -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE faster921