Implementation notes: amd64, cel02, crypto_sign/sphincsf256harakarobust

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf256harakarobust
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
11440791025714 0 052775 840 2912T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
15835024432750 0 063463 840 2944T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
19195854425915 0 053391 840 2912T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
368774172827885 0 128058463 840 2944T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
417733241221196 0 128048680 816 2880T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
449180499616135 0 128041906 808 2880T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
481081304417942 0 128045415 840 2912T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
484727073017394 0 128044495 840 2912T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
502677303015317 0 128041167 832 2880T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Test failure

Implementation: T:aesni
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111

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

Compiler output

Implementation: T:aesni
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: 0x56177aa7cc20: v4i64 = X86ISD::VTRUNC 0x56177aa7caf0
try.c: 0x56177aa7caf0: v16i32 = vselect 0x56177aa8cb90, 0x56177aa30d30, 0x56177aa7c9c0
try.c: 0x56177aa8cb90: v4i1 = X86ISD::PCMPGTM 0x56177aa759d0, 0x56177aa71560
try.c: 0x56177aa759d0: v4i64 = X86ISD::VBROADCAST 0x56177aa19950
try.c: 0x56177aa19950: i64,ch = load<LD8[%lsr.iv6971]> 0x56177a986950, 0x56177aa6c3c0, undef:i64
try.c: 0x56177aa6c3c0: i64,ch = CopyFromReg 0x56177a986950, Register:i64 %vreg50
try.c: 0x56177aa717c0: i64 = Register %vreg50
try.c: 0x56177aa2f3a0: i64 = undef
try.c: 0x56177aa71560: v4i64,ch = CopyFromReg 0x56177a986950, Register:v4i64 %vreg13
try.c: 0x56177aa76220: v4i64 = Register %vreg13
try.c: 0x56177aa30d30: v16i32 = X86ISD::VBROADCAST 0x56177aa75c30
try.c: 0x56177aa75c30: i32,ch = load<LD4[ConstantPool]> 0x56177a986950, 0x56177aa18f30, undef:i64
try.c: 0x56177aa18f30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56177aa58090: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56177aa2f3a0: i64 = undef
try.c: 0x56177aa7c9c0: 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: 0x56177aa7c890: i32 = Constant<0>
try.c: 0x56177aa7c890: i32 = Constant<0>
try.c: 0x56177aa7c890: i32 = Constant<0>
try.c: 0x56177aa7c890: i32 = Constant<0>
try.c: 0x56177aa7c890: i32 = Constant<0>
try.c: 0x56177aa7c890: i32 = Constant<0>
try.c: 0x56177aa7c890: i32 = Constant<0>
try.c: 0x56177aa7c890: i32 = Constant<0>
try.c: 0x56177aa7c890: 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:aesni

Compiler output

Implementation: T:aesni
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: 0x564ecf7971b0: v4i64 = X86ISD::VTRUNC 0x564ecf797080
try.c: 0x564ecf797080: v16i32 = vselect 0x564ecf776730, 0x564ecf70b050, 0x564ecf796f50
try.c: 0x564ecf776730: v4i1 = X86ISD::PCMPGTM 0x564ecf770ef0, 0x564ecf76c470
try.c: 0x564ecf770ef0: v4i64 = X86ISD::VBROADCAST 0x564ecf70b510
try.c: 0x564ecf70b510: i64,ch = load<LD8[%lsr.iv6971]> 0x564ecf66aa40, 0x564ecf7045b0, undef:i64
try.c: 0x564ecf7045b0: i64,ch = CopyFromReg 0x564ecf66aa40, Register:i64 %vreg50
try.c: 0x564ecf76c6d0: i64 = Register %vreg50
try.c: 0x564ecf6e89c0: i64 = undef
try.c: 0x564ecf76c470: v4i64,ch = CopyFromReg 0x564ecf66aa40, Register:v4i64 %vreg13
try.c: 0x564ecf771740: v4i64 = Register %vreg13
try.c: 0x564ecf70b050: v16i32 = X86ISD::VBROADCAST 0x564ecf771150
try.c: 0x564ecf771150: i32,ch = load<LD4[ConstantPool]> 0x564ecf66aa40, 0x564ecf70d9f0, undef:i64
try.c: 0x564ecf70d9f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564ecf6e9340: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564ecf6e89c0: i64 = undef
try.c: 0x564ecf796f50: 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: 0x564ecf796e20: i32 = Constant<0>
try.c: 0x564ecf796e20: i32 = Constant<0>
try.c: 0x564ecf796e20: i32 = Constant<0>
try.c: 0x564ecf796e20: i32 = Constant<0>
try.c: 0x564ecf796e20: i32 = Constant<0>
try.c: 0x564ecf796e20: i32 = Constant<0>
try.c: 0x564ecf796e20: i32 = Constant<0>
try.c: 0x564ecf796e20: i32 = Constant<0>
try.c: 0x564ecf796e20: 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:aesni

Compiler output

Implementation: T:aesni
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: 0x559c1b0a9310: v4i64 = X86ISD::VTRUNC 0x559c1b0a91e0
try.c: 0x559c1b0a91e0: v16i32 = vselect 0x559c1b0b1800, 0x559c1b0394b0, 0x559c1b0a90b0
try.c: 0x559c1b0b1800: v4i1 = X86ISD::PCMPGTM 0x559c1b08db30, 0x559c1b0896c0
try.c: 0x559c1b08db30: v4i64 = X86ISD::VBROADCAST 0x559c1b0354f0
try.c: 0x559c1b0354f0: i64,ch = load<LD8[%lsr.iv6971]> 0x559c1af9e9e0, 0x559c1b07c730, undef:i64
try.c: 0x559c1b07c730: i64,ch = CopyFromReg 0x559c1af9e9e0, Register:i64 %vreg50
try.c: 0x559c1b089920: i64 = Register %vreg50
try.c: 0x559c1b0369c0: i64 = undef
try.c: 0x559c1b0896c0: v4i64,ch = CopyFromReg 0x559c1af9e9e0, Register:v4i64 %vreg13
try.c: 0x559c1b08e380: v4i64 = Register %vreg13
try.c: 0x559c1b0394b0: v16i32 = X86ISD::VBROADCAST 0x559c1b08dd90
try.c: 0x559c1b08dd90: i32,ch = load<LD4[ConstantPool]> 0x559c1af9e9e0, 0x559c1b034ad0, undef:i64
try.c: 0x559c1b034ad0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x559c1b074d40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x559c1b0369c0: i64 = undef
try.c: 0x559c1b0a90b0: 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: 0x559c1b0a8f80: i32 = Constant<0>
try.c: 0x559c1b0a8f80: i32 = Constant<0>
try.c: 0x559c1b0a8f80: i32 = Constant<0>
try.c: 0x559c1b0a8f80: i32 = Constant<0>
try.c: 0x559c1b0a8f80: i32 = Constant<0>
try.c: 0x559c1b0a8f80: i32 = Constant<0>
try.c: 0x559c1b0a8f80: i32 = Constant<0>
try.c: 0x559c1b0a8f80: i32 = Constant<0>
try.c: 0x559c1b0a8f80: 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:aesni

Compiler output

Implementation: T:aesni
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
haraka.c: haraka.c:421:5: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'haraka512_perm' that is compiled without support for 'aes'
haraka.c: AES4(s[0], s[1], s[2], s[3], rc);
haraka.c: ^
haraka.c: haraka.c:36:8: note: expanded from macro 'AES4'
haraka.c: s0 = _mm_aesenc_si128(s0, *(rci)); \
haraka.c: ^
haraka.c: haraka.c:421:5: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'haraka512_perm' that is compiled without support for 'aes'
haraka.c: haraka.c:37:8: note: expanded from macro 'AES4'
haraka.c: s1 = _mm_aesenc_si128(s1, *(rci + 1)); \
haraka.c: ^
haraka.c: haraka.c:421:5: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'haraka512_perm' that is compiled without support for 'aes'
haraka.c: haraka.c:38:8: note: expanded from macro 'AES4'
haraka.c: s2 = _mm_aesenc_si128(s2, *(rci + 2)); \
haraka.c: ^
haraka.c: haraka.c:421:5: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'haraka512_perm' that is compiled without support for 'aes'
haraka.c: haraka.c:39:8: note: expanded from macro 'AES4'
haraka.c: s3 = _mm_aesenc_si128(s3, *(rci + 3)); \
haraka.c: ^
haraka.c: haraka.c:421:5: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'haraka512_perm' that is compiled without support for 'aes'
haraka.c: haraka.c:40:8: note: expanded from macro 'AES4'
haraka.c: s0 = _mm_aesenc_si128(s0, *(rci + 4)); \
haraka.c: ^
haraka.c: haraka.c:421:5: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'haraka512_perm' that is compiled without support for 'aes'
haraka.c: haraka.c:41:8: note: expanded from macro 'AES4'
haraka.c: s1 = _mm_aesenc_si128(s1, *(rci + 5)); \
haraka.c: ...

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

Compiler output

Implementation: T:ref
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: 0x55827fa89be0: v4i64 = X86ISD::VTRUNC 0x55827fa89ab0
try.c: 0x55827fa89ab0: v16i32 = vselect 0x55827fa84c30, 0x55827fa28950, 0x55827fa89980
try.c: 0x55827fa84c30: v4i1 = X86ISD::PCMPGTM 0x55827fa81c00, 0x55827fa7d790
try.c: 0x55827fa81c00: v4i64 = X86ISD::VBROADCAST 0x55827fa2e260
try.c: 0x55827fa2e260: i64,ch = load<LD8[%lsr.iv6971]> 0x55827f992950, 0x55827fa6be50, undef:i64
try.c: 0x55827fa6be50: i64,ch = CopyFromReg 0x55827f992950, Register:i64 %vreg50
try.c: 0x55827fa7d9f0: i64 = Register %vreg50
try.c: 0x55827fa2f730: i64 = undef
try.c: 0x55827fa7d790: v4i64,ch = CopyFromReg 0x55827f992950, Register:v4i64 %vreg13
try.c: 0x55827fa82450: v4i64 = Register %vreg13
try.c: 0x55827fa28950: v16i32 = X86ISD::VBROADCAST 0x55827fa81e60
try.c: 0x55827fa81e60: i32,ch = load<LD4[ConstantPool]> 0x55827f992950, 0x55827fa2d840, undef:i64
try.c: 0x55827fa2d840: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55827fa6d050: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55827fa2f730: i64 = undef
try.c: 0x55827fa89980: 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: 0x55827fa89850: i32 = Constant<0>
try.c: 0x55827fa89850: i32 = Constant<0>
try.c: 0x55827fa89850: i32 = Constant<0>
try.c: 0x55827fa89850: i32 = Constant<0>
try.c: 0x55827fa89850: i32 = Constant<0>
try.c: 0x55827fa89850: i32 = Constant<0>
try.c: 0x55827fa89850: i32 = Constant<0>
try.c: 0x55827fa89850: i32 = Constant<0>
try.c: 0x55827fa89850: 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:ref

Compiler output

Implementation: T:ref
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: 0x561ff720be30: v4i64 = X86ISD::VTRUNC 0x561ff720bd00
try.c: 0x561ff720bd00: v16i32 = vselect 0x561ff7208810, 0x561ff7199780, 0x561ff720bbd0
try.c: 0x561ff7208810: v4i1 = X86ISD::PCMPGTM 0x561ff7203fe0, 0x561ff71ffb70
try.c: 0x561ff7203fe0: v4i64 = X86ISD::VBROADCAST 0x561ff7199c40
try.c: 0x561ff7199c40: i64,ch = load<LD8[%lsr.iv6971]> 0x561ff70fda30, 0x561ff71a35b0, undef:i64
try.c: 0x561ff71a35b0: i64,ch = CopyFromReg 0x561ff70fda30, Register:i64 %vreg50
try.c: 0x561ff71ffdd0: i64 = Register %vreg50
try.c: 0x561ff71b43c0: i64 = undef
try.c: 0x561ff71ffb70: v4i64,ch = CopyFromReg 0x561ff70fda30, Register:v4i64 %vreg13
try.c: 0x561ff7204830: v4i64 = Register %vreg13
try.c: 0x561ff7199780: v16i32 = X86ISD::VBROADCAST 0x561ff7204240
try.c: 0x561ff7204240: i32,ch = load<LD4[ConstantPool]> 0x561ff70fda30, 0x561ff71aea60, undef:i64
try.c: 0x561ff71aea60: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x561ff71b4d40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x561ff71b43c0: i64 = undef
try.c: 0x561ff720bbd0: 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: 0x561ff720baa0: i32 = Constant<0>
try.c: 0x561ff720baa0: i32 = Constant<0>
try.c: 0x561ff720baa0: i32 = Constant<0>
try.c: 0x561ff720baa0: i32 = Constant<0>
try.c: 0x561ff720baa0: i32 = Constant<0>
try.c: 0x561ff720baa0: i32 = Constant<0>
try.c: 0x561ff720baa0: i32 = Constant<0>
try.c: 0x561ff720baa0: i32 = Constant<0>
try.c: 0x561ff720baa0: 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:ref

Compiler output

Implementation: T:ref
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: 0x5651391ec2c0: v4i64 = X86ISD::VTRUNC 0x5651391ec190
try.c: 0x5651391ec190: v16i32 = vselect 0x5651391e8ca0, 0x56513918ad20, 0x5651391ec060
try.c: 0x5651391e8ca0: v4i1 = X86ISD::PCMPGTM 0x5651391e4090, 0x5651391dfc20
try.c: 0x5651391e4090: v4i64 = X86ISD::VBROADCAST 0x56513919dc30
try.c: 0x56513919dc30: i64,ch = load<LD8[%lsr.iv6971]> 0x5651390f4950, 0x5651391d6410, undef:i64
try.c: 0x5651391d6410: i64,ch = CopyFromReg 0x5651390f4950, Register:i64 %vreg50
try.c: 0x5651391dfe80: i64 = Register %vreg50
try.c: 0x56513919f100: i64 = undef
try.c: 0x5651391dfc20: v4i64,ch = CopyFromReg 0x5651390f4950, Register:v4i64 %vreg13
try.c: 0x5651391e48e0: v4i64 = Register %vreg13
try.c: 0x56513918ad20: v16i32 = X86ISD::VBROADCAST 0x5651391e42f0
try.c: 0x5651391e42f0: i32,ch = load<LD4[ConstantPool]> 0x5651390f4950, 0x565139185830, undef:i64
try.c: 0x565139185830: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5651391c9f30: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56513919f100: i64 = undef
try.c: 0x5651391ec060: 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: 0x5651391ebf30: i32 = Constant<0>
try.c: 0x5651391ebf30: i32 = Constant<0>
try.c: 0x5651391ebf30: i32 = Constant<0>
try.c: 0x5651391ebf30: i32 = Constant<0>
try.c: 0x5651391ebf30: i32 = Constant<0>
try.c: 0x5651391ebf30: i32 = Constant<0>
try.c: 0x5651391ebf30: i32 = Constant<0>
try.c: 0x5651391ebf30: i32 = Constant<0>
try.c: 0x5651391ebf30: 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:ref