Implementation notes: amd64, cel02, crypto_sign/sphincsf128harakarobust

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf128harakarobust
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4984099623531 0 049130 808 2880T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
6051572631618 0 062143 840 2944T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
6850558225150 0 052079 840 2912T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
7132480025255 0 052575 840 2912T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
91902039616103 0 128041810 808 2880T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
116773181027248 0 128057655 840 2944T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
144134149020407 0 128047808 816 2880T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
163970204017598 0 128044943 840 2912T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
164551355015338 0 128041183 832 2880T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
175194182817088 0 128044055 840 2912T:refgcc_-march=native_-mtune=native_-O_-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: 0x55991cd636f0: v4i64 = X86ISD::VTRUNC 0x55991cd635c0
try.c: 0x55991cd635c0: v16i32 = vselect 0x55991cd7d060, 0x55991cd084b0, 0x55991cd63490
try.c: 0x55991cd7d060: v4i1 = X86ISD::PCMPGTM 0x55991cd5f0d0, 0x55991cd5ac60
try.c: 0x55991cd5f0d0: v4i64 = X86ISD::VBROADCAST 0x55991cd05650
try.c: 0x55991cd05650: i64,ch = load<LD8[%lsr.iv6971]> 0x55991cc6f970, 0x55991cd52110, undef:i64
try.c: 0x55991cd52110: i64,ch = CopyFromReg 0x55991cc6f970, Register:i64 %vreg50
try.c: 0x55991cd5aec0: i64 = Register %vreg50
try.c: 0x55991cd06b20: i64 = undef
try.c: 0x55991cd5ac60: v4i64,ch = CopyFromReg 0x55991cc6f970, Register:v4i64 %vreg13
try.c: 0x55991cd5f920: v4i64 = Register %vreg13
try.c: 0x55991cd084b0: v16i32 = X86ISD::VBROADCAST 0x55991cd5f330
try.c: 0x55991cd5f330: i32,ch = load<LD4[ConstantPool]> 0x55991cc6f970, 0x55991cd0ae40, undef:i64
try.c: 0x55991cd0ae40: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55991cd0cc40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55991cd06b20: i64 = undef
try.c: 0x55991cd63490: 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: 0x55991cd63360: i32 = Constant<0>
try.c: 0x55991cd63360: i32 = Constant<0>
try.c: 0x55991cd63360: i32 = Constant<0>
try.c: 0x55991cd63360: i32 = Constant<0>
try.c: 0x55991cd63360: i32 = Constant<0>
try.c: 0x55991cd63360: i32 = Constant<0>
try.c: 0x55991cd63360: i32 = Constant<0>
try.c: 0x55991cd63360: i32 = Constant<0>
try.c: 0x55991cd63360: 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: 0x556e0ac4fcf0: v4i64 = X86ISD::VTRUNC 0x556e0ac4fbc0
try.c: 0x556e0ac4fbc0: v16i32 = vselect 0x556e0ac3e7c0, 0x556e0abe09a0, 0x556e0ac4fa90
try.c: 0x556e0ac3e7c0: v4i1 = X86ISD::PCMPGTM 0x556e0ac37350, 0x556e0ac32ee0
try.c: 0x556e0ac37350: v4i64 = X86ISD::VBROADCAST 0x556e0abe0e60
try.c: 0x556e0abe0e60: i64,ch = load<LD8[%lsr.iv6971]> 0x556e0ab30a40, 0x556e0abcaf90, undef:i64
try.c: 0x556e0abcaf90: i64,ch = CopyFromReg 0x556e0ab30a40, Register:i64 %vreg50
try.c: 0x556e0ac33140: i64 = Register %vreg50
try.c: 0x556e0abc3d70: i64 = undef
try.c: 0x556e0ac32ee0: v4i64,ch = CopyFromReg 0x556e0ab30a40, Register:v4i64 %vreg13
try.c: 0x556e0ac37ba0: v4i64 = Register %vreg13
try.c: 0x556e0abe09a0: v16i32 = X86ISD::VBROADCAST 0x556e0ac375b0
try.c: 0x556e0ac375b0: i32,ch = load<LD4[ConstantPool]> 0x556e0ab30a40, 0x556e0abcfa20, undef:i64
try.c: 0x556e0abcfa20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556e0abc46f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556e0abc3d70: i64 = undef
try.c: 0x556e0ac4fa90: 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: 0x556e0ac4f960: i32 = Constant<0>
try.c: 0x556e0ac4f960: i32 = Constant<0>
try.c: 0x556e0ac4f960: i32 = Constant<0>
try.c: 0x556e0ac4f960: i32 = Constant<0>
try.c: 0x556e0ac4f960: i32 = Constant<0>
try.c: 0x556e0ac4f960: i32 = Constant<0>
try.c: 0x556e0ac4f960: i32 = Constant<0>
try.c: 0x556e0ac4f960: i32 = Constant<0>
try.c: 0x556e0ac4f960: 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: 0x55cade879b80: v4i64 = X86ISD::VTRUNC 0x55cade879a50
try.c: 0x55cade879a50: v16i32 = vselect 0x55cade894600, 0x55cade82d630, 0x55cade879920
try.c: 0x55cade894600: v4i1 = X86ISD::PCMPGTM 0x55cade872930, 0x55cade86e4c0
try.c: 0x55cade872930: v4i64 = X86ISD::VBROADCAST 0x55cade82a7d0
try.c: 0x55cade82a7d0: i64,ch = load<LD8[%lsr.iv6971]> 0x55cade783940, 0x55cade85dfa0, undef:i64
try.c: 0x55cade85dfa0: i64,ch = CopyFromReg 0x55cade783940, Register:i64 %vreg50
try.c: 0x55cade86e720: i64 = Register %vreg50
try.c: 0x55cade82bca0: i64 = undef
try.c: 0x55cade86e4c0: v4i64,ch = CopyFromReg 0x55cade783940, Register:v4i64 %vreg13
try.c: 0x55cade873180: v4i64 = Register %vreg13
try.c: 0x55cade82d630: v16i32 = X86ISD::VBROADCAST 0x55cade872b90
try.c: 0x55cade872b90: i32,ch = load<LD4[ConstantPool]> 0x55cade783940, 0x55cade817200, undef:i64
try.c: 0x55cade817200: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cade8590f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cade82bca0: i64 = undef
try.c: 0x55cade879920: 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: 0x55cade8797f0: i32 = Constant<0>
try.c: 0x55cade8797f0: i32 = Constant<0>
try.c: 0x55cade8797f0: i32 = Constant<0>
try.c: 0x55cade8797f0: i32 = Constant<0>
try.c: 0x55cade8797f0: i32 = Constant<0>
try.c: 0x55cade8797f0: i32 = Constant<0>
try.c: 0x55cade8797f0: i32 = Constant<0>
try.c: 0x55cade8797f0: i32 = Constant<0>
try.c: 0x55cade8797f0: 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: 0x55abe4e1bf00: v4i64 = X86ISD::VTRUNC 0x55abe4e1bdd0
try.c: 0x55abe4e1bdd0: v16i32 = vselect 0x55abe4e167f0, 0x55abe4db48c0, 0x55abe4e1bca0
try.c: 0x55abe4e167f0: v4i1 = X86ISD::PCMPGTM 0x55abe4dfac80, 0x55abe4df6810
try.c: 0x55abe4dfac80: v4i64 = X86ISD::VBROADCAST 0x55abe4d9d130
try.c: 0x55abe4d9d130: i64,ch = load<LD8[%lsr.iv6971]> 0x55abe4d0b960, 0x55abe4de0ba0, undef:i64
try.c: 0x55abe4de0ba0: i64,ch = CopyFromReg 0x55abe4d0b960, Register:i64 %vreg50
try.c: 0x55abe4df6a70: i64 = Register %vreg50
try.c: 0x55abe4d9e600: i64 = undef
try.c: 0x55abe4df6810: v4i64,ch = CopyFromReg 0x55abe4d0b960, Register:v4i64 %vreg13
try.c: 0x55abe4dfb4d0: v4i64 = Register %vreg13
try.c: 0x55abe4db48c0: v16i32 = X86ISD::VBROADCAST 0x55abe4dfaee0
try.c: 0x55abe4dfaee0: i32,ch = load<LD4[ConstantPool]> 0x55abe4d0b960, 0x55abe4da34f0, undef:i64
try.c: 0x55abe4da34f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55abe4df27c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55abe4d9e600: i64 = undef
try.c: 0x55abe4e1bca0: 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: 0x55abe4e1bb70: i32 = Constant<0>
try.c: 0x55abe4e1bb70: i32 = Constant<0>
try.c: 0x55abe4e1bb70: i32 = Constant<0>
try.c: 0x55abe4e1bb70: i32 = Constant<0>
try.c: 0x55abe4e1bb70: i32 = Constant<0>
try.c: 0x55abe4e1bb70: i32 = Constant<0>
try.c: 0x55abe4e1bb70: i32 = Constant<0>
try.c: 0x55abe4e1bb70: i32 = Constant<0>
try.c: 0x55abe4e1bb70: 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: 0x55da0465a720: v4i64 = X86ISD::VTRUNC 0x55da0465a5f0
try.c: 0x55da0465a5f0: v16i32 = vselect 0x55da0464c450, 0x55da045d21f0, 0x55da0465a4c0
try.c: 0x55da0464c450: v4i1 = X86ISD::PCMPGTM 0x55da04634ef0, 0x55da04630470
try.c: 0x55da04634ef0: v4i64 = X86ISD::VBROADCAST 0x55da045d26b0
try.c: 0x55da045d26b0: i64,ch = load<LD8[%lsr.iv6971]> 0x55da0452ea30, 0x55da045ca6f0, undef:i64
try.c: 0x55da045ca6f0: i64,ch = CopyFromReg 0x55da0452ea30, Register:i64 %vreg50
try.c: 0x55da046306d0: i64 = Register %vreg50
try.c: 0x55da045ccdd0: i64 = undef
try.c: 0x55da04630470: v4i64,ch = CopyFromReg 0x55da0452ea30, Register:v4i64 %vreg13
try.c: 0x55da04635740: v4i64 = Register %vreg13
try.c: 0x55da045d21f0: v16i32 = X86ISD::VBROADCAST 0x55da04635150
try.c: 0x55da04635150: i32,ch = load<LD4[ConstantPool]> 0x55da0452ea30, 0x55da045c8cc0, undef:i64
try.c: 0x55da045c8cc0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55da045cd750: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55da045ccdd0: i64 = undef
try.c: 0x55da0465a4c0: 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: 0x55da0465a390: i32 = Constant<0>
try.c: 0x55da0465a390: i32 = Constant<0>
try.c: 0x55da0465a390: i32 = Constant<0>
try.c: 0x55da0465a390: i32 = Constant<0>
try.c: 0x55da0465a390: i32 = Constant<0>
try.c: 0x55da0465a390: i32 = Constant<0>
try.c: 0x55da0465a390: i32 = Constant<0>
try.c: 0x55da0465a390: i32 = Constant<0>
try.c: 0x55da0465a390: 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: 0x559c14c3c3e0: v4i64 = X86ISD::VTRUNC 0x559c14c3c2b0
try.c: 0x559c14c3c2b0: v16i32 = vselect 0x559c14c2e260, 0x559c14bc9850, 0x559c14c3c180
try.c: 0x559c14c2e260: v4i1 = X86ISD::PCMPGTM 0x559c14c22a70, 0x559c14c1e600
try.c: 0x559c14c22a70: v4i64 = X86ISD::VBROADCAST 0x559c14bc27e0
try.c: 0x559c14bc27e0: i64,ch = load<LD8[%lsr.iv6971]> 0x559c14b33960, 0x559c14c0ca30, undef:i64
try.c: 0x559c14c0ca30: i64,ch = CopyFromReg 0x559c14b33960, Register:i64 %vreg50
try.c: 0x559c14c1e860: i64 = Register %vreg50
try.c: 0x559c14bc3cb0: i64 = undef
try.c: 0x559c14c1e600: v4i64,ch = CopyFromReg 0x559c14b33960, Register:v4i64 %vreg13
try.c: 0x559c14c232c0: v4i64 = Register %vreg13
try.c: 0x559c14bc9850: v16i32 = X86ISD::VBROADCAST 0x559c14c22cd0
try.c: 0x559c14c22cd0: i32,ch = load<LD4[ConstantPool]> 0x559c14b33960, 0x559c14bd9290, undef:i64
try.c: 0x559c14bd9290: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x559c14c0dc30: i64 = TargetConstantPool<i32 1> 0
try.c: 0x559c14bc3cb0: i64 = undef
try.c: 0x559c14c3c180: 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: 0x559c14c3c050: i32 = Constant<0>
try.c: 0x559c14c3c050: i32 = Constant<0>
try.c: 0x559c14c3c050: i32 = Constant<0>
try.c: 0x559c14c3c050: i32 = Constant<0>
try.c: 0x559c14c3c050: i32 = Constant<0>
try.c: 0x559c14c3c050: i32 = Constant<0>
try.c: 0x559c14c3c050: i32 = Constant<0>
try.c: 0x559c14c3c050: i32 = Constant<0>
try.c: 0x559c14c3c050: 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