Implementation notes: amd64, cel02, crypto_verify/1312

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_verify
Primitive: 1312
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
148190 0 010668 816 768avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
208190 0 013925 824 800avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
228186 0 010364 816 768avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
232173 0 09352 800 736avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
370717 0 014493 824 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
782180 0 09556 792 712refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1346310 0 011562 800 712refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
335694 0 010572 816 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
444896 0 010268 816 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
503886 0 09272 800 736refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Test failure

Implementation: avx
Security model: constbranchindex
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111
different strings pass verify

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

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55ffee969db0: v4i64 = X86ISD::VTRUNC 0x55ffee969c80
try.c: 0x55ffee969c80: v16i32 = vselect 0x55ffee97caf0, 0x55ffee908190, 0x55ffee969b50
try.c: 0x55ffee97caf0: v4i1 = X86ISD::PCMPGTM 0x55ffee965780, 0x55ffee961310
try.c: 0x55ffee965780: v4i64 = X86ISD::VBROADCAST 0x55ffee905330
try.c: 0x55ffee905330: i64,ch = load<LD8[%lsr.iv6971]> 0x55ffee876950, 0x55ffee9586c0, undef:i64
try.c: 0x55ffee9586c0: i64,ch = CopyFromReg 0x55ffee876950, Register:i64 %vreg50
try.c: 0x55ffee961570: i64 = Register %vreg50
try.c: 0x55ffee906800: i64 = undef
try.c: 0x55ffee961310: v4i64,ch = CopyFromReg 0x55ffee876950, Register:v4i64 %vreg13
try.c: 0x55ffee965fd0: v4i64 = Register %vreg13
try.c: 0x55ffee908190: v16i32 = X86ISD::VBROADCAST 0x55ffee9659e0
try.c: 0x55ffee9659e0: i32,ch = load<LD4[ConstantPool]> 0x55ffee876950, 0x55ffee90a190, undef:i64
try.c: 0x55ffee90a190: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ffee94eda0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ffee906800: i64 = undef
try.c: 0x55ffee969b50: 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: 0x55ffee969a20: i32 = Constant<0>
try.c: 0x55ffee969a20: i32 = Constant<0>
try.c: 0x55ffee969a20: i32 = Constant<0>
try.c: 0x55ffee969a20: i32 = Constant<0>
try.c: 0x55ffee969a20: i32 = Constant<0>
try.c: 0x55ffee969a20: i32 = Constant<0>
try.c: 0x55ffee969a20: i32 = Constant<0>
try.c: 0x55ffee969a20: i32 = Constant<0>
try.c: 0x55ffee969a20: 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 avx

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55ba4f74f240: v4i64 = X86ISD::VTRUNC 0x55ba4f74f110
try.c: 0x55ba4f74f110: v16i32 = vselect 0x55ba4f72d7e0, 0x55ba4f6bf070, 0x55ba4f74efe0
try.c: 0x55ba4f72d7e0: v4i1 = X86ISD::PCMPGTM 0x55ba4f72a230, 0x55ba4f728d60
try.c: 0x55ba4f72a230: v4i64 = X86ISD::VBROADCAST 0x55ba4f6bf530
try.c: 0x55ba4f6bf530: i64,ch = load<LD8[%lsr.iv6971]> 0x55ba4f625a30, 0x55ba4f6d71b0, undef:i64
try.c: 0x55ba4f6d71b0: i64,ch = CopyFromReg 0x55ba4f625a30, Register:i64 %vreg50
try.c: 0x55ba4f728fc0: i64 = Register %vreg50
try.c: 0x55ba4f6c7160: i64 = undef
try.c: 0x55ba4f728d60: v4i64,ch = CopyFromReg 0x55ba4f625a30, Register:v4i64 %vreg13
try.c: 0x55ba4f72aa80: v4i64 = Register %vreg13
try.c: 0x55ba4f6bf070: v16i32 = X86ISD::VBROADCAST 0x55ba4f72a490
try.c: 0x55ba4f72a490: i32,ch = load<LD4[ConstantPool]> 0x55ba4f625a30, 0x55ba4f6c1a10, undef:i64
try.c: 0x55ba4f6c1a10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ba4f6c7ae0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ba4f6c7160: i64 = undef
try.c: 0x55ba4f74efe0: 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: 0x55ba4f74eeb0: i32 = Constant<0>
try.c: 0x55ba4f74eeb0: i32 = Constant<0>
try.c: 0x55ba4f74eeb0: i32 = Constant<0>
try.c: 0x55ba4f74eeb0: i32 = Constant<0>
try.c: 0x55ba4f74eeb0: i32 = Constant<0>
try.c: 0x55ba4f74eeb0: i32 = Constant<0>
try.c: 0x55ba4f74eeb0: i32 = Constant<0>
try.c: 0x55ba4f74eeb0: i32 = Constant<0>
try.c: 0x55ba4f74eeb0: 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 avx

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55743bd2d5e0: v4i64 = X86ISD::VTRUNC 0x55743bd2d4b0
try.c: 0x55743bd2d4b0: v16i32 = vselect 0x55743bd4c1f0, 0x55743bcc9ed0, 0x55743bd2d380
try.c: 0x55743bd4c1f0: v4i1 = X86ISD::PCMPGTM 0x55743bd28930, 0x55743bd244c0
try.c: 0x55743bd28930: v4i64 = X86ISD::VBROADCAST 0x55743bcf11f0
try.c: 0x55743bcf11f0: i64,ch = load<LD8[%lsr.iv6971]> 0x55743bc39950, 0x55743bcef8e0, undef:i64
try.c: 0x55743bcef8e0: i64,ch = CopyFromReg 0x55743bc39950, Register:i64 %vreg50
try.c: 0x55743bd24720: i64 = Register %vreg50
try.c: 0x55743bcc8540: i64 = undef
try.c: 0x55743bd244c0: v4i64,ch = CopyFromReg 0x55743bc39950, Register:v4i64 %vreg13
try.c: 0x55743bd29180: v4i64 = Register %vreg13
try.c: 0x55743bcc9ed0: v16i32 = X86ISD::VBROADCAST 0x55743bd28b90
try.c: 0x55743bd28b90: i32,ch = load<LD4[ConstantPool]> 0x55743bc39950, 0x55743bcf07d0, undef:i64
try.c: 0x55743bcf07d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55743bd13430: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55743bcc8540: i64 = undef
try.c: 0x55743bd2d380: 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: 0x55743bd2d250: i32 = Constant<0>
try.c: 0x55743bd2d250: i32 = Constant<0>
try.c: 0x55743bd2d250: i32 = Constant<0>
try.c: 0x55743bd2d250: i32 = Constant<0>
try.c: 0x55743bd2d250: i32 = Constant<0>
try.c: 0x55743bd2d250: i32 = Constant<0>
try.c: 0x55743bd2d250: i32 = Constant<0>
try.c: 0x55743bd2d250: i32 = Constant<0>
try.c: 0x55743bd2d250: 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 avx

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
verify.c: verify.c:6:18: error: always_inline function '_mm256_set1_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: __m256i diff = _mm256_set1_epi8(0);
verify.c: ^
verify.c: verify.c:13:20: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: __m256i x0 = _mm256_loadu_si256((__m256i *) x);
verify.c: ^
verify.c: verify.c:14:20: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: __m256i y0 = _mm256_loadu_si256((__m256i *) y);
verify.c: ^
verify.c: verify.c:25:11: error: always_inline function '_mm256_srli_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: diff |= _mm256_srli_epi16(diff,8);
verify.c: ^
verify.c: verify.c:26:11: error: always_inline function '_mm256_srli_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: diff |= _mm256_srli_epi32(diff,16);
verify.c: ^
verify.c: verify.c:27:11: error: always_inline function '_mm256_srli_epi64' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: diff |= _mm256_srli_epi64(diff,32);
verify.c: ^
verify.c: verify.c:29:19: error: always_inline function '_mm256_extract_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: differentbits = _mm256_extract_epi8(diff,0);
verify.c: ^
verify.c: verify.c:30:20: error: always_inline function '_mm256_extract_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: differentbits |= _mm256_extract_epi8(diff,8);
verify.c: ^
verify.c: verify.c:31:20: error: always_inline function '_mm256_extract_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_verify_1312_avx_constbranchindex' that is compiled without support for 'sse4.2'
verify.c: ...

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

Compiler output

Implementation: ref
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x560a5def6bd0: v4i64 = X86ISD::VTRUNC 0x560a5def6aa0
try.c: 0x560a5def6aa0: v16i32 = vselect 0x560a5df12d20, 0x560a5de98970, 0x560a5def6970
try.c: 0x560a5df12d20: v4i1 = X86ISD::PCMPGTM 0x560a5deefa60, 0x560a5deeb5f0
try.c: 0x560a5deefa60: v4i64 = X86ISD::VBROADCAST 0x560a5de95b10
try.c: 0x560a5de95b10: i64,ch = load<LD8[%lsr.iv6971]> 0x560a5de009b0, 0x560a5dee2800, undef:i64
try.c: 0x560a5dee2800: i64,ch = CopyFromReg 0x560a5de009b0, Register:i64 %vreg50
try.c: 0x560a5deeb850: i64 = Register %vreg50
try.c: 0x560a5de96fe0: i64 = undef
try.c: 0x560a5deeb5f0: v4i64,ch = CopyFromReg 0x560a5de009b0, Register:v4i64 %vreg13
try.c: 0x560a5def02b0: v4i64 = Register %vreg13
try.c: 0x560a5de98970: v16i32 = X86ISD::VBROADCAST 0x560a5deefcc0
try.c: 0x560a5deefcc0: i32,ch = load<LD4[ConstantPool]> 0x560a5de009b0, 0x560a5deb2170, undef:i64
try.c: 0x560a5deb2170: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560a5deb4360: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560a5de96fe0: i64 = undef
try.c: 0x560a5def6970: 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: 0x560a5def6840: i32 = Constant<0>
try.c: 0x560a5def6840: i32 = Constant<0>
try.c: 0x560a5def6840: i32 = Constant<0>
try.c: 0x560a5def6840: i32 = Constant<0>
try.c: 0x560a5def6840: i32 = Constant<0>
try.c: 0x560a5def6840: i32 = Constant<0>
try.c: 0x560a5def6840: i32 = Constant<0>
try.c: 0x560a5def6840: i32 = Constant<0>
try.c: 0x560a5def6840: 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 ref

Compiler output

Implementation: ref
Security model: constbranchindex
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55a02a13cd10: v4i64 = X86ISD::VTRUNC 0x55a02a13cbe0
try.c: 0x55a02a13cbe0: v16i32 = vselect 0x55a02a12f5e0, 0x55a02a0c7a80, 0x55a02a13cab0
try.c: 0x55a02a12f5e0: v4i1 = X86ISD::PCMPGTM 0x55a02a118e00, 0x55a02a114990
try.c: 0x55a02a118e00: v4i64 = X86ISD::VBROADCAST 0x55a02a0c7f40
try.c: 0x55a02a0c7f40: i64,ch = load<LD8[%lsr.iv6971]> 0x55a02a012a30, 0x55a02a0b5ab0, undef:i64
try.c: 0x55a02a0b5ab0: i64,ch = CopyFromReg 0x55a02a012a30, Register:i64 %vreg50
try.c: 0x55a02a114bf0: i64 = Register %vreg50
try.c: 0x55a02a0c55d0: i64 = undef
try.c: 0x55a02a114990: v4i64,ch = CopyFromReg 0x55a02a012a30, Register:v4i64 %vreg13
try.c: 0x55a02a119650: v4i64 = Register %vreg13
try.c: 0x55a02a0c7a80: v16i32 = X86ISD::VBROADCAST 0x55a02a119060
try.c: 0x55a02a119060: i32,ch = load<LD4[ConstantPool]> 0x55a02a012a30, 0x55a02a0b4080, undef:i64
try.c: 0x55a02a0b4080: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a02a0c5f50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a02a0c55d0: i64 = undef
try.c: 0x55a02a13cab0: 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: 0x55a02a13c980: i32 = Constant<0>
try.c: 0x55a02a13c980: i32 = Constant<0>
try.c: 0x55a02a13c980: i32 = Constant<0>
try.c: 0x55a02a13c980: i32 = Constant<0>
try.c: 0x55a02a13c980: i32 = Constant<0>
try.c: 0x55a02a13c980: i32 = Constant<0>
try.c: 0x55a02a13c980: i32 = Constant<0>
try.c: 0x55a02a13c980: i32 = Constant<0>
try.c: 0x55a02a13c980: 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 ref

Compiler output

Implementation: ref
Security model: constbranchindex
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x5649dbddc8a0: v4i64 = X86ISD::VTRUNC 0x5649dbddc770
try.c: 0x5649dbddc770: v16i32 = vselect 0x5649dbdc2330, 0x5649dbd75ed0, 0x5649dbddc640
try.c: 0x5649dbdc2330: v4i1 = X86ISD::PCMPGTM 0x5649dbdbaec0, 0x5649dbdb6a50
try.c: 0x5649dbdbaec0: v4i64 = X86ISD::VBROADCAST 0x5649dbd87e00
try.c: 0x5649dbd87e00: i64,ch = load<LD8[%lsr.iv6971]> 0x5649dbccb950, 0x5649dbdae6d0, undef:i64
try.c: 0x5649dbdae6d0: i64,ch = CopyFromReg 0x5649dbccb950, Register:i64 %vreg50
try.c: 0x5649dbdb6cb0: i64 = Register %vreg50
try.c: 0x5649dbd74540: i64 = undef
try.c: 0x5649dbdb6a50: v4i64,ch = CopyFromReg 0x5649dbccb950, Register:v4i64 %vreg13
try.c: 0x5649dbdbb710: v4i64 = Register %vreg13
try.c: 0x5649dbd75ed0: v16i32 = X86ISD::VBROADCAST 0x5649dbdbb120
try.c: 0x5649dbdbb120: i32,ch = load<LD4[ConstantPool]> 0x5649dbccb950, 0x5649dbd873e0, undef:i64
try.c: 0x5649dbd873e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5649dbd33c50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5649dbd74540: i64 = undef
try.c: 0x5649dbddc640: 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: 0x5649dbddc510: i32 = Constant<0>
try.c: 0x5649dbddc510: i32 = Constant<0>
try.c: 0x5649dbddc510: i32 = Constant<0>
try.c: 0x5649dbddc510: i32 = Constant<0>
try.c: 0x5649dbddc510: i32 = Constant<0>
try.c: 0x5649dbddc510: i32 = Constant<0>
try.c: 0x5649dbddc510: i32 = Constant<0>
try.c: 0x5649dbddc510: i32 = Constant<0>
try.c: 0x5649dbddc510: 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 ref