Implementation notes: amd64, cel02, crypto_hash/sarmal256

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: sarmal256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
923426242 16640 12840437 17472 936T:asm64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1167029610 16640 12843805 17472 936T:opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1195428226 16640 12838852 17464 904T:opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1610823733 16640 12833376 17448 904T:asm64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1683824755 16640 12835380 17464 904T:asm64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1703024998 16640 12835940 17464 904T:asm64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1724427259 16384 038922 17192 736T:opt64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1798228342 16640 12839292 17464 904T:opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1843627276 16384 037092 17184 736T:opt64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2127026601 16640 12836256 17448 904T:opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:asm64
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1323:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:1120:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1075:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1323:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:1120:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1075:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: ...

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

Compiler output

Implementation: T:asm64
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1323:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:1120:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1075:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: 2 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:asm64

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x5650b1db1cc0: v4i64 = X86ISD::VTRUNC 0x5650b1db1b90
try.c: 0x5650b1db1b90: v16i32 = vselect 0x5650b1dcc920, 0x5650b1d505f0, 0x5650b1db1a60
try.c: 0x5650b1dcc920: v4i1 = X86ISD::PCMPGTM 0x5650b1da9b40, 0x5650b1da56d0
try.c: 0x5650b1da9b40: v4i64 = X86ISD::VBROADCAST 0x5650b1d63ea0
try.c: 0x5650b1d63ea0: i64,ch = load<LD8[%lsr.iv6971]> 0x5650b1cba8e0, 0x5650b1da0530, undef:i64
try.c: 0x5650b1da0530: i64,ch = CopyFromReg 0x5650b1cba8e0, Register:i64 %vreg50
try.c: 0x5650b1da5930: i64 = Register %vreg50
try.c: 0x5650b1d65370: i64 = undef
try.c: 0x5650b1da56d0: v4i64,ch = CopyFromReg 0x5650b1cba8e0, Register:v4i64 %vreg13
try.c: 0x5650b1daa390: v4i64 = Register %vreg13
try.c: 0x5650b1d505f0: v16i32 = X86ISD::VBROADCAST 0x5650b1da9da0
try.c: 0x5650b1da9da0: i32,ch = load<LD4[ConstantPool]> 0x5650b1cba8e0, 0x5650b1d71df0, undef:i64
try.c: 0x5650b1d71df0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5650b1d59050: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5650b1d65370: i64 = undef
try.c: 0x5650b1db1a60: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: 0x5650b1db1930: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt64

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x5568cd694610: v4i64 = X86ISD::VTRUNC 0x5568cd6944e0
try.c: 0x5568cd6944e0: v16i32 = vselect 0x5568cd67e850, 0x5568cd60ff60, 0x5568cd6943b0
try.c: 0x5568cd67e850: v4i1 = X86ISD::PCMPGTM 0x5568cd67c830, 0x5568cd677c00
try.c: 0x5568cd67c830: v4i64 = X86ISD::VBROADCAST 0x5568cd610420
try.c: 0x5568cd610420: i64,ch = load<LD8[%lsr.iv6971]> 0x5568cd575a30, 0x5568cd618620, undef:i64
try.c: 0x5568cd618620: i64,ch = CopyFromReg 0x5568cd575a30, Register:i64 %vreg50
try.c: 0x5568cd677e60: i64 = Register %vreg50
try.c: 0x5568cd614af0: i64 = undef
try.c: 0x5568cd677c00: v4i64,ch = CopyFromReg 0x5568cd575a30, Register:v4i64 %vreg13
try.c: 0x5568cd67d080: v4i64 = Register %vreg13
try.c: 0x5568cd60ff60: v16i32 = X86ISD::VBROADCAST 0x5568cd67ca90
try.c: 0x5568cd67ca90: i32,ch = load<LD4[ConstantPool]> 0x5568cd575a30, 0x5568cd616bf0, undef:i64
try.c: 0x5568cd616bf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5568cd615470: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5568cd614af0: i64 = undef
try.c: 0x5568cd6943b0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: 0x5568cd694280: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55bab2538ea0: v4i64 = X86ISD::VTRUNC 0x55bab2538d70
try.c: 0x55bab2538d70: v16i32 = vselect 0x55bab2533870, 0x55bab24dafe0, 0x55bab2538c40
try.c: 0x55bab2533870: v4i1 = X86ISD::PCMPGTM 0x55bab2532860, 0x55bab252e3f0
try.c: 0x55bab2532860: v4i64 = X86ISD::VBROADCAST 0x55bab24d4010
try.c: 0x55bab24d4010: i64,ch = load<LD8[%lsr.iv6971]> 0x55bab2443970, 0x55bab2519a00, undef:i64
try.c: 0x55bab2519a00: i64,ch = CopyFromReg 0x55bab2443970, Register:i64 %vreg50
try.c: 0x55bab252e650: i64 = Register %vreg50
try.c: 0x55bab24d9650: i64 = undef
try.c: 0x55bab252e3f0: v4i64,ch = CopyFromReg 0x55bab2443970, Register:v4i64 %vreg13
try.c: 0x55bab25330b0: v4i64 = Register %vreg13
try.c: 0x55bab24dafe0: v16i32 = X86ISD::VBROADCAST 0x55bab2532ac0
try.c: 0x55bab2532ac0: i32,ch = load<LD4[ConstantPool]> 0x55bab2443970, 0x55bab24d35f0, undef:i64
try.c: 0x55bab24d35f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55bab24de5d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55bab24d9650: i64 = undef
try.c: 0x55bab2538c40: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: 0x55bab2538b10: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt64