Implementation notes: amd64, cel02, crypto_verify/1039

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_verify
Primitive: 1039
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
140186 0 010348 816 768avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
142173 0 09352 800 736avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
344190 0 010652 816 768avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
378190 0 013909 824 800avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
8162096 0 015845 824 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1298345 0 011594 800 712refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
246896 0 010252 816 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
357486 0 09272 800 736refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
360494 0 010556 816 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
374095 0 09476 792 712refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-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: 0x557dc678a350: v4i64 = X86ISD::VTRUNC 0x557dc678a220
try.c: 0x557dc678a220: v16i32 = vselect 0x557dc679a470, 0x557dc6722dd0, 0x557dc678a0f0
try.c: 0x557dc679a470: v4i1 = X86ISD::PCMPGTM 0x557dc6783100, 0x557dc677ec90
try.c: 0x557dc6783100: v4i64 = X86ISD::VBROADCAST 0x557dc6729380
try.c: 0x557dc6729380: i64,ch = load<LD8[%lsr.iv6971]> 0x557dc6693960, 0x557dc676a9b0, undef:i64
try.c: 0x557dc676a9b0: i64,ch = CopyFromReg 0x557dc6693960, Register:i64 %vreg50
try.c: 0x557dc677eef0: i64 = Register %vreg50
try.c: 0x557dc6721440: i64 = undef
try.c: 0x557dc677ec90: v4i64,ch = CopyFromReg 0x557dc6693960, Register:v4i64 %vreg13
try.c: 0x557dc6783950: v4i64 = Register %vreg13
try.c: 0x557dc6722dd0: v16i32 = X86ISD::VBROADCAST 0x557dc6783360
try.c: 0x557dc6783360: i32,ch = load<LD4[ConstantPool]> 0x557dc6693960, 0x557dc6728960, undef:i64
try.c: 0x557dc6728960: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557dc6776070: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557dc6721440: i64 = undef
try.c: 0x557dc678a0f0: 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: 0x557dc6789fc0: i32 = Constant<0>
try.c: 0x557dc6789fc0: i32 = Constant<0>
try.c: 0x557dc6789fc0: i32 = Constant<0>
try.c: 0x557dc6789fc0: i32 = Constant<0>
try.c: 0x557dc6789fc0: i32 = Constant<0>
try.c: 0x557dc6789fc0: i32 = Constant<0>
try.c: 0x557dc6789fc0: i32 = Constant<0>
try.c: 0x557dc6789fc0: i32 = Constant<0>
try.c: 0x557dc6789fc0: 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: 0x55d1f461a500: v4i64 = X86ISD::VTRUNC 0x55d1f461a3d0
try.c: 0x55d1f461a3d0: v16i32 = vselect 0x55d1f461fa60, 0x55d1f45a2040, 0x55d1f461a2a0
try.c: 0x55d1f461fa60: v4i1 = X86ISD::PCMPGTM 0x55d1f4600700, 0x55d1f45fc290
try.c: 0x55d1f4600700: v4i64 = X86ISD::VBROADCAST 0x55d1f45a2500
try.c: 0x55d1f45a2500: i64,ch = load<LD8[%lsr.iv6971]> 0x55d1f44faa30, 0x55d1f45acec0, undef:i64
try.c: 0x55d1f45acec0: i64,ch = CopyFromReg 0x55d1f44faa30, Register:i64 %vreg50
try.c: 0x55d1f45fc4f0: i64 = Register %vreg50
try.c: 0x55d1f45972e0: i64 = undef
try.c: 0x55d1f45fc290: v4i64,ch = CopyFromReg 0x55d1f44faa30, Register:v4i64 %vreg13
try.c: 0x55d1f4600f50: v4i64 = Register %vreg13
try.c: 0x55d1f45a2040: v16i32 = X86ISD::VBROADCAST 0x55d1f4600960
try.c: 0x55d1f4600960: i32,ch = load<LD4[ConstantPool]> 0x55d1f44faa30, 0x55d1f45ab490, undef:i64
try.c: 0x55d1f45ab490: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d1f4597c60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d1f45972e0: i64 = undef
try.c: 0x55d1f461a2a0: 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: 0x55d1f461a170: i32 = Constant<0>
try.c: 0x55d1f461a170: i32 = Constant<0>
try.c: 0x55d1f461a170: i32 = Constant<0>
try.c: 0x55d1f461a170: i32 = Constant<0>
try.c: 0x55d1f461a170: i32 = Constant<0>
try.c: 0x55d1f461a170: i32 = Constant<0>
try.c: 0x55d1f461a170: i32 = Constant<0>
try.c: 0x55d1f461a170: i32 = Constant<0>
try.c: 0x55d1f461a170: 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: 0x558861a49260: v4i64 = X86ISD::VTRUNC 0x558861a49130
try.c: 0x558861a49130: v16i32 = vselect 0x558861a29d30, 0x5588619d8990, 0x558861a49000
try.c: 0x558861a29d30: v4i1 = X86ISD::PCMPGTM 0x558861a31900, 0x558861a2d490
try.c: 0x558861a31900: v4i64 = X86ISD::VBROADCAST 0x5588619d1e40
try.c: 0x5588619d1e40: i64,ch = load<LD8[%lsr.iv6971]> 0x558861942930, 0x5588619eb270, undef:i64
try.c: 0x5588619eb270: i64,ch = CopyFromReg 0x558861942930, Register:i64 %vreg50
try.c: 0x558861a2d6f0: i64 = Register %vreg50
try.c: 0x5588619d3310: i64 = undef
try.c: 0x558861a2d490: v4i64,ch = CopyFromReg 0x558861942930, Register:v4i64 %vreg13
try.c: 0x558861a32150: v4i64 = Register %vreg13
try.c: 0x5588619d8990: v16i32 = X86ISD::VBROADCAST 0x558861a31b60
try.c: 0x558861a31b60: i32,ch = load<LD4[ConstantPool]> 0x558861942930, 0x5588619e0db0, undef:i64
try.c: 0x5588619e0db0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558861a1b010: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5588619d3310: i64 = undef
try.c: 0x558861a49000: 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: 0x558861a48ed0: i32 = Constant<0>
try.c: 0x558861a48ed0: i32 = Constant<0>
try.c: 0x558861a48ed0: i32 = Constant<0>
try.c: 0x558861a48ed0: i32 = Constant<0>
try.c: 0x558861a48ed0: i32 = Constant<0>
try.c: 0x558861a48ed0: i32 = Constant<0>
try.c: 0x558861a48ed0: i32 = Constant<0>
try.c: 0x558861a48ed0: i32 = Constant<0>
try.c: 0x558861a48ed0: 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_1039_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_1039_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_1039_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_1039_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_1039_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_1039_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_1039_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_1039_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_1039_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: 0x55b8661b0bf0: v4i64 = X86ISD::VTRUNC 0x55b8661b0ac0
try.c: 0x55b8661b0ac0: v16i32 = vselect 0x55b8661ad5d0, 0x55b866151d70, 0x55b8661b0990
try.c: 0x55b8661ad5d0: v4i1 = X86ISD::PCMPGTM 0x55b8661a8980, 0x55b8661a4510
try.c: 0x55b8661a8980: v4i64 = X86ISD::VBROADCAST 0x55b86614ef10
try.c: 0x55b86614ef10: i64,ch = load<LD8[%lsr.iv6971]> 0x55b8660b9950, 0x55b866192920, undef:i64
try.c: 0x55b866192920: i64,ch = CopyFromReg 0x55b8660b9950, Register:i64 %vreg50
try.c: 0x55b8661a4770: i64 = Register %vreg50
try.c: 0x55b8661503e0: i64 = undef
try.c: 0x55b8661a4510: v4i64,ch = CopyFromReg 0x55b8660b9950, Register:v4i64 %vreg13
try.c: 0x55b8661a91d0: v4i64 = Register %vreg13
try.c: 0x55b866151d70: v16i32 = X86ISD::VBROADCAST 0x55b8661a8be0
try.c: 0x55b8661a8be0: i32,ch = load<LD4[ConstantPool]> 0x55b8660b9950, 0x55b8661539d0, undef:i64
try.c: 0x55b8661539d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b866193b20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b8661503e0: i64 = undef
try.c: 0x55b8661b0990: 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: 0x55b8661b0860: i32 = Constant<0>
try.c: 0x55b8661b0860: i32 = Constant<0>
try.c: 0x55b8661b0860: i32 = Constant<0>
try.c: 0x55b8661b0860: i32 = Constant<0>
try.c: 0x55b8661b0860: i32 = Constant<0>
try.c: 0x55b8661b0860: i32 = Constant<0>
try.c: 0x55b8661b0860: i32 = Constant<0>
try.c: 0x55b8661b0860: i32 = Constant<0>
try.c: 0x55b8661b0860: 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: 0x55c4503683c0: v4i64 = X86ISD::VTRUNC 0x55c450368290
try.c: 0x55c450368290: v16i32 = vselect 0x55c450364da0, 0x55c4502f81f0, 0x55c450368160
try.c: 0x55c450364da0: v4i1 = X86ISD::PCMPGTM 0x55c45035c530, 0x55c450357ab0
try.c: 0x55c45035c530: v4i64 = X86ISD::VBROADCAST 0x55c4502f86b0
try.c: 0x55c4502f86b0: i64,ch = load<LD8[%lsr.iv6971]> 0x55c450255a10, 0x55c45031b640, undef:i64
try.c: 0x55c45031b640: i64,ch = CopyFromReg 0x55c450255a10, Register:i64 %vreg50
try.c: 0x55c450357d10: i64 = Register %vreg50
try.c: 0x55c4502f4be0: i64 = undef
try.c: 0x55c450357ab0: v4i64,ch = CopyFromReg 0x55c450255a10, Register:v4i64 %vreg13
try.c: 0x55c45035cd80: v4i64 = Register %vreg13
try.c: 0x55c4502f81f0: v16i32 = X86ISD::VBROADCAST 0x55c45035c790
try.c: 0x55c45035c790: i32,ch = load<LD4[ConstantPool]> 0x55c450255a10, 0x55c450319400, undef:i64
try.c: 0x55c450319400: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c4502f5560: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c4502f4be0: i64 = undef
try.c: 0x55c450368160: 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: 0x55c450368030: i32 = Constant<0>
try.c: 0x55c450368030: i32 = Constant<0>
try.c: 0x55c450368030: i32 = Constant<0>
try.c: 0x55c450368030: i32 = Constant<0>
try.c: 0x55c450368030: i32 = Constant<0>
try.c: 0x55c450368030: i32 = Constant<0>
try.c: 0x55c450368030: i32 = Constant<0>
try.c: 0x55c450368030: i32 = Constant<0>
try.c: 0x55c450368030: 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: 0x564ccfc2ff50: v4i64 = X86ISD::VTRUNC 0x564ccfc2fe20
try.c: 0x564ccfc2fe20: v16i32 = vselect 0x564ccfc2c930, 0x564ccfbca0d0, 0x564ccfc2fcf0
try.c: 0x564ccfc2c930: v4i1 = X86ISD::PCMPGTM 0x564ccfc23ca0, 0x564ccfc1f830
try.c: 0x564ccfc23ca0: v4i64 = X86ISD::VBROADCAST 0x564ccfbe91a0
try.c: 0x564ccfbe91a0: i64,ch = load<LD8[%lsr.iv6971]> 0x564ccfb34930, 0x564ccfc158f0, undef:i64
try.c: 0x564ccfc158f0: i64,ch = CopyFromReg 0x564ccfb34930, Register:i64 %vreg50
try.c: 0x564ccfc1fa90: i64 = Register %vreg50
try.c: 0x564ccfbea670: i64 = undef
try.c: 0x564ccfc1f830: v4i64,ch = CopyFromReg 0x564ccfb34930, Register:v4i64 %vreg13
try.c: 0x564ccfc244f0: v4i64 = Register %vreg13
try.c: 0x564ccfbca0d0: v16i32 = X86ISD::VBROADCAST 0x564ccfc23f00
try.c: 0x564ccfc23f00: i32,ch = load<LD4[ConstantPool]> 0x564ccfb34930, 0x564ccfbc7720, undef:i64
try.c: 0x564ccfbc7720: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564ccfc1b7e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564ccfbea670: i64 = undef
try.c: 0x564ccfc2fcf0: 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: 0x564ccfc2fbc0: i32 = Constant<0>
try.c: 0x564ccfc2fbc0: i32 = Constant<0>
try.c: 0x564ccfc2fbc0: i32 = Constant<0>
try.c: 0x564ccfc2fbc0: i32 = Constant<0>
try.c: 0x564ccfc2fbc0: i32 = Constant<0>
try.c: 0x564ccfc2fbc0: i32 = Constant<0>
try.c: 0x564ccfc2fbc0: i32 = Constant<0>
try.c: 0x564ccfc2fbc0: i32 = Constant<0>
try.c: 0x564ccfc2fbc0: 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