Implementation notes: amd64, cel02, crypto_sign/sphincsf192harakasimple

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf192harakasimple
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3023490623622 0 049274 808 2880T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
3250447425149 0 052551 840 2912T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5693838024861 0 051863 840 2912T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5702582031381 0 062007 840 2944T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
83445953827106 0 128057607 840 2944T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
107185916221336 0 128048760 816 2880T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
109193271816244 0 128042002 808 2880T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
111880931617697 0 128045103 840 2912T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
115084273817132 0 128044175 840 2912T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
124722096415269 0 128041111 832 2880T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Test failure

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

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
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: 0x56196fc23af0: v4i64 = X86ISD::VTRUNC 0x56196fc239c0
try.c: 0x56196fc239c0: v16i32 = vselect 0x56196fc2a300, 0x56196fbc5390, 0x56196fc23890
try.c: 0x56196fc2a300: v4i1 = X86ISD::PCMPGTM 0x56196fc1ea20, 0x56196fc1a5b0
try.c: 0x56196fc1ea20: v4i64 = X86ISD::VBROADCAST 0x56196fbbdf10
try.c: 0x56196fbbdf10: i64,ch = load<LD8[%lsr.iv6971]> 0x56196fb2f960, 0x56196fc15410, undef:i64
try.c: 0x56196fc15410: i64,ch = CopyFromReg 0x56196fb2f960, Register:i64 %vreg50
try.c: 0x56196fc1a810: i64 = Register %vreg50
try.c: 0x56196fbbf3e0: i64 = undef
try.c: 0x56196fc1a5b0: v4i64,ch = CopyFromReg 0x56196fb2f960, Register:v4i64 %vreg13
try.c: 0x56196fc1f270: v4i64 = Register %vreg13
try.c: 0x56196fbc5390: v16i32 = X86ISD::VBROADCAST 0x56196fc1ec80
try.c: 0x56196fc1ec80: i32,ch = load<LD4[ConstantPool]> 0x56196fb2f960, 0x56196fbbd4f0, undef:i64
try.c: 0x56196fbbd4f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56196fbc98f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56196fbbf3e0: i64 = undef
try.c: 0x56196fc23890: 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: 0x56196fc23760: i32 = Constant<0>
try.c: 0x56196fc23760: i32 = Constant<0>
try.c: 0x56196fc23760: i32 = Constant<0>
try.c: 0x56196fc23760: i32 = Constant<0>
try.c: 0x56196fc23760: i32 = Constant<0>
try.c: 0x56196fc23760: i32 = Constant<0>
try.c: 0x56196fc23760: i32 = Constant<0>
try.c: 0x56196fc23760: i32 = Constant<0>
try.c: 0x56196fc23760: 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: 0x560a99dcfee0: v4i64 = X86ISD::VTRUNC 0x560a99dcfdb0
try.c: 0x560a99dcfdb0: v16i32 = vselect 0x560a99dcc8c0, 0x560a99d66240, 0x560a99dcfc80
try.c: 0x560a99dcc8c0: v4i1 = X86ISD::PCMPGTM 0x560a99db6560, 0x560a99db4080
try.c: 0x560a99db6560: v4i64 = X86ISD::VBROADCAST 0x560a99d66700
try.c: 0x560a99d66700: i64,ch = load<LD8[%lsr.iv6971]> 0x560a99cb0a40, 0x560a99d59cf0, undef:i64
try.c: 0x560a99d59cf0: i64,ch = CopyFromReg 0x560a99cb0a40, Register:i64 %vreg50
try.c: 0x560a99db42e0: i64 = Register %vreg50
try.c: 0x560a99d61c50: i64 = undef
try.c: 0x560a99db4080: v4i64,ch = CopyFromReg 0x560a99cb0a40, Register:v4i64 %vreg13
try.c: 0x560a99db6db0: v4i64 = Register %vreg13
try.c: 0x560a99d66240: v16i32 = X86ISD::VBROADCAST 0x560a99db67c0
try.c: 0x560a99db67c0: i32,ch = load<LD4[ConstantPool]> 0x560a99cb0a40, 0x560a99d582c0, undef:i64
try.c: 0x560a99d582c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560a99d625d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560a99d61c50: i64 = undef
try.c: 0x560a99dcfc80: 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: 0x560a99dcfb50: i32 = Constant<0>
try.c: 0x560a99dcfb50: i32 = Constant<0>
try.c: 0x560a99dcfb50: i32 = Constant<0>
try.c: 0x560a99dcfb50: i32 = Constant<0>
try.c: 0x560a99dcfb50: i32 = Constant<0>
try.c: 0x560a99dcfb50: i32 = Constant<0>
try.c: 0x560a99dcfb50: i32 = Constant<0>
try.c: 0x560a99dcfb50: i32 = Constant<0>
try.c: 0x560a99dcfb50: 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: 0x55970a05fdf0: v4i64 = X86ISD::VTRUNC 0x55970a05fcc0
try.c: 0x55970a05fcc0: v16i32 = vselect 0x55970a05a7c0, 0x55970a012b40, 0x55970a05fb90
try.c: 0x55970a05a7c0: v4i1 = X86ISD::PCMPGTM 0x55970a0597b0, 0x55970a055340
try.c: 0x55970a0597b0: v4i64 = X86ISD::VBROADCAST 0x55970a00fce0
try.c: 0x55970a00fce0: i64,ch = load<LD8[%lsr.iv6971]> 0x559709f6a950, 0x55970a043470, undef:i64
try.c: 0x55970a043470: i64,ch = CopyFromReg 0x559709f6a950, Register:i64 %vreg50
try.c: 0x55970a0555a0: i64 = Register %vreg50
try.c: 0x55970a0111b0: i64 = undef
try.c: 0x55970a055340: v4i64,ch = CopyFromReg 0x559709f6a950, Register:v4i64 %vreg13
try.c: 0x55970a05a000: v4i64 = Register %vreg13
try.c: 0x55970a012b40: v16i32 = X86ISD::VBROADCAST 0x55970a059a10
try.c: 0x55970a059a10: i32,ch = load<LD4[ConstantPool]> 0x559709f6a950, 0x55970a00f2c0, undef:i64
try.c: 0x55970a00f2c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55970a013900: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55970a0111b0: i64 = undef
try.c: 0x55970a05fb90: 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: 0x55970a05fa60: i32 = Constant<0>
try.c: 0x55970a05fa60: i32 = Constant<0>
try.c: 0x55970a05fa60: i32 = Constant<0>
try.c: 0x55970a05fa60: i32 = Constant<0>
try.c: 0x55970a05fa60: i32 = Constant<0>
try.c: 0x55970a05fa60: i32 = Constant<0>
try.c: 0x55970a05fa60: i32 = Constant<0>
try.c: 0x55970a05fa60: i32 = Constant<0>
try.c: 0x55970a05fa60: 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: 0x55bbbfd822d0: v4i64 = X86ISD::VTRUNC 0x55bbbfd821a0
try.c: 0x55bbbfd821a0: v16i32 = vselect 0x55bbbfd7ecb0, 0x55bbbfd10910, 0x55bbbfd82070
try.c: 0x55bbbfd7ecb0: v4i1 = X86ISD::PCMPGTM 0x55bbbfd68af0, 0x55bbbfd64680
try.c: 0x55bbbfd68af0: v4i64 = X86ISD::VBROADCAST 0x55bbbfd06080
try.c: 0x55bbbfd06080: i64,ch = load<LD8[%lsr.iv6971]> 0x55bbbfc79950, 0x55bbbfd5f4e0, undef:i64
try.c: 0x55bbbfd5f4e0: i64,ch = CopyFromReg 0x55bbbfc79950, Register:i64 %vreg50
try.c: 0x55bbbfd648e0: i64 = Register %vreg50
try.c: 0x55bbbfd0ef80: i64 = undef
try.c: 0x55bbbfd64680: v4i64,ch = CopyFromReg 0x55bbbfc79950, Register:v4i64 %vreg13
try.c: 0x55bbbfd69340: v4i64 = Register %vreg13
try.c: 0x55bbbfd10910: v16i32 = X86ISD::VBROADCAST 0x55bbbfd68d50
try.c: 0x55bbbfd68d50: i32,ch = load<LD4[ConstantPool]> 0x55bbbfc79950, 0x55bbbfd05660, undef:i64
try.c: 0x55bbbfd05660: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55bbbfd264d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55bbbfd0ef80: i64 = undef
try.c: 0x55bbbfd82070: 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: 0x55bbbfd81f40: i32 = Constant<0>
try.c: 0x55bbbfd81f40: i32 = Constant<0>
try.c: 0x55bbbfd81f40: i32 = Constant<0>
try.c: 0x55bbbfd81f40: i32 = Constant<0>
try.c: 0x55bbbfd81f40: i32 = Constant<0>
try.c: 0x55bbbfd81f40: i32 = Constant<0>
try.c: 0x55bbbfd81f40: i32 = Constant<0>
try.c: 0x55bbbfd81f40: i32 = Constant<0>
try.c: 0x55bbbfd81f40: 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: 0x5577a94728d0: v4i64 = X86ISD::VTRUNC 0x5577a94727a0
try.c: 0x5577a94727a0: v16i32 = vselect 0x5577a946d2a0, 0x5577a93fdf90, 0x5577a9472670
try.c: 0x5577a946d2a0: v4i1 = X86ISD::PCMPGTM 0x5577a946a280, 0x5577a9465e10
try.c: 0x5577a946a280: v4i64 = X86ISD::VBROADCAST 0x5577a93fe450
try.c: 0x5577a93fe450: i64,ch = load<LD8[%lsr.iv6971]> 0x5577a9363a30, 0x5577a94061f0, undef:i64
try.c: 0x5577a94061f0: i64,ch = CopyFromReg 0x5577a9363a30, Register:i64 %vreg50
try.c: 0x5577a9466070: i64 = Register %vreg50
try.c: 0x5577a93e21f0: i64 = undef
try.c: 0x5577a9465e10: v4i64,ch = CopyFromReg 0x5577a9363a30, Register:v4i64 %vreg13
try.c: 0x5577a946aad0: v4i64 = Register %vreg13
try.c: 0x5577a93fdf90: v16i32 = X86ISD::VBROADCAST 0x5577a946a4e0
try.c: 0x5577a946a4e0: i32,ch = load<LD4[ConstantPool]> 0x5577a9363a30, 0x5577a94047c0, undef:i64
try.c: 0x5577a94047c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5577a93e2b70: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5577a93e21f0: i64 = undef
try.c: 0x5577a9472670: 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: 0x5577a9472540: i32 = Constant<0>
try.c: 0x5577a9472540: i32 = Constant<0>
try.c: 0x5577a9472540: i32 = Constant<0>
try.c: 0x5577a9472540: i32 = Constant<0>
try.c: 0x5577a9472540: i32 = Constant<0>
try.c: 0x5577a9472540: i32 = Constant<0>
try.c: 0x5577a9472540: i32 = Constant<0>
try.c: 0x5577a9472540: i32 = Constant<0>
try.c: 0x5577a9472540: 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: 0x565441844280: v4i64 = X86ISD::VTRUNC 0x565441844150
try.c: 0x565441844150: v16i32 = vselect 0x56544183ec50, 0x5654417ce400, 0x565441844020
try.c: 0x56544183ec50: v4i1 = X86ISD::PCMPGTM 0x5654418278e0, 0x565441823470
try.c: 0x5654418278e0: v4i64 = X86ISD::VBROADCAST 0x5654417ca400
try.c: 0x5654417ca400: i64,ch = load<LD8[%lsr.iv6971]> 0x565441738950, 0x5654418116e0, undef:i64
try.c: 0x5654418116e0: i64,ch = CopyFromReg 0x565441738950, Register:i64 %vreg50
try.c: 0x5654418236d0: i64 = Register %vreg50
try.c: 0x5654417cb8d0: i64 = undef
try.c: 0x565441823470: v4i64,ch = CopyFromReg 0x565441738950, Register:v4i64 %vreg13
try.c: 0x565441828130: v4i64 = Register %vreg13
try.c: 0x5654417ce400: v16i32 = X86ISD::VBROADCAST 0x565441827b40
try.c: 0x565441827b40: i32,ch = load<LD4[ConstantPool]> 0x565441738950, 0x5654417c81d0, undef:i64
try.c: 0x5654417c81d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5654418128e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5654417cb8d0: i64 = undef
try.c: 0x565441844020: 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: 0x565441843ef0: i32 = Constant<0>
try.c: 0x565441843ef0: i32 = Constant<0>
try.c: 0x565441843ef0: i32 = Constant<0>
try.c: 0x565441843ef0: i32 = Constant<0>
try.c: 0x565441843ef0: i32 = Constant<0>
try.c: 0x565441843ef0: i32 = Constant<0>
try.c: 0x565441843ef0: i32 = Constant<0>
try.c: 0x565441843ef0: i32 = Constant<0>
try.c: 0x565441843ef0: 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