Implementation notes: amd64, cel02, crypto_verify/1184

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_verify
Primitive: 1184
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
146173 0 09352 800 736avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
194190 0 013925 824 800avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
198190 0 010668 816 768avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
200186 0 010364 816 768avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
436717 0 014493 824 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
706180 0 09556 792 712refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1240310 0 011562 800 712refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
236896 0 010268 816 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
391094 0 010572 816 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
434686 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: 0x55c72214acd0: v4i64 = X86ISD::VTRUNC 0x55c72214aba0
try.c: 0x55c72214aba0: v16i32 = vselect 0x55c722141f20, 0x55c7220ed350, 0x55c72214aa70
try.c: 0x55c722141f20: v4i1 = X86ISD::PCMPGTM 0x55c7221446a0, 0x55c722140230
try.c: 0x55c7221446a0: v4i64 = X86ISD::VBROADCAST 0x55c7220e93c0
try.c: 0x55c7220e93c0: i64,ch = load<LD8[%lsr.iv6971]> 0x55c722055930, 0x55c72212e4c0, undef:i64
try.c: 0x55c72212e4c0: i64,ch = CopyFromReg 0x55c722055930, Register:i64 %vreg50
try.c: 0x55c722140490: i64 = Register %vreg50
try.c: 0x55c7220eb9c0: i64 = undef
try.c: 0x55c722140230: v4i64,ch = CopyFromReg 0x55c722055930, Register:v4i64 %vreg13
try.c: 0x55c722144ef0: v4i64 = Register %vreg13
try.c: 0x55c7220ed350: v16i32 = X86ISD::VBROADCAST 0x55c722144900
try.c: 0x55c722144900: i32,ch = load<LD4[ConstantPool]> 0x55c722055930, 0x55c7220e89a0, undef:i64
try.c: 0x55c7220e89a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c72212f6c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c7220eb9c0: i64 = undef
try.c: 0x55c72214aa70: 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: 0x55c72214a940: i32 = Constant<0>
try.c: 0x55c72214a940: i32 = Constant<0>
try.c: 0x55c72214a940: i32 = Constant<0>
try.c: 0x55c72214a940: i32 = Constant<0>
try.c: 0x55c72214a940: i32 = Constant<0>
try.c: 0x55c72214a940: i32 = Constant<0>
try.c: 0x55c72214a940: i32 = Constant<0>
try.c: 0x55c72214a940: i32 = Constant<0>
try.c: 0x55c72214a940: 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: 0x556400987cb0: v4i64 = X86ISD::VTRUNC 0x556400987b80
try.c: 0x556400987b80: v16i32 = vselect 0x5564009716e0, 0x556400902060, 0x556400987a50
try.c: 0x5564009716e0: v4i1 = X86ISD::PCMPGTM 0x55640096deb0, 0x556400969a40
try.c: 0x55640096deb0: v4i64 = X86ISD::VBROADCAST 0x556400902520
try.c: 0x556400902520: i64,ch = load<LD8[%lsr.iv6971]> 0x556400867a20, 0x556400917150, undef:i64
try.c: 0x556400917150: i64,ch = CopyFromReg 0x556400867a20, Register:i64 %vreg50
try.c: 0x556400969ca0: i64 = Register %vreg50
try.c: 0x55640090b4f0: i64 = undef
try.c: 0x556400969a40: v4i64,ch = CopyFromReg 0x556400867a20, Register:v4i64 %vreg13
try.c: 0x55640096e700: v4i64 = Register %vreg13
try.c: 0x556400902060: v16i32 = X86ISD::VBROADCAST 0x55640096e110
try.c: 0x55640096e110: i32,ch = load<LD4[ConstantPool]> 0x556400867a20, 0x5564009059f0, undef:i64
try.c: 0x5564009059f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55640090be70: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55640090b4f0: i64 = undef
try.c: 0x556400987a50: 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: 0x556400987920: i32 = Constant<0>
try.c: 0x556400987920: i32 = Constant<0>
try.c: 0x556400987920: i32 = Constant<0>
try.c: 0x556400987920: i32 = Constant<0>
try.c: 0x556400987920: i32 = Constant<0>
try.c: 0x556400987920: i32 = Constant<0>
try.c: 0x556400987920: i32 = Constant<0>
try.c: 0x556400987920: i32 = Constant<0>
try.c: 0x556400987920: 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: 0x55cb891a9140: v4i64 = X86ISD::VTRUNC 0x55cb891a9010
try.c: 0x55cb891a9010: v16i32 = vselect 0x55cb89196c30, 0x55cb89147a10, 0x55cb891a8ee0
try.c: 0x55cb89196c30: v4i1 = X86ISD::PCMPGTM 0x55cb8918e7c0, 0x55cb8918a350
try.c: 0x55cb8918e7c0: v4i64 = X86ISD::VBROADCAST 0x55cb8912e380
try.c: 0x55cb8912e380: i64,ch = load<LD8[%lsr.iv6971]> 0x55cb8909f940, 0x55cb89177f80, undef:i64
try.c: 0x55cb89177f80: i64,ch = CopyFromReg 0x55cb8909f940, Register:i64 %vreg50
try.c: 0x55cb8918a5b0: i64 = Register %vreg50
try.c: 0x55cb8912f850: i64 = undef
try.c: 0x55cb8918a350: v4i64,ch = CopyFromReg 0x55cb8909f940, Register:v4i64 %vreg13
try.c: 0x55cb8918f010: v4i64 = Register %vreg13
try.c: 0x55cb89147a10: v16i32 = X86ISD::VBROADCAST 0x55cb8918ea20
try.c: 0x55cb8918ea20: i32,ch = load<LD4[ConstantPool]> 0x55cb8909f940, 0x55cb8912d960, undef:i64
try.c: 0x55cb8912d960: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cb89179180: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cb8912f850: i64 = undef
try.c: 0x55cb891a8ee0: 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: 0x55cb891a8db0: i32 = Constant<0>
try.c: 0x55cb891a8db0: i32 = Constant<0>
try.c: 0x55cb891a8db0: i32 = Constant<0>
try.c: 0x55cb891a8db0: i32 = Constant<0>
try.c: 0x55cb891a8db0: i32 = Constant<0>
try.c: 0x55cb891a8db0: i32 = Constant<0>
try.c: 0x55cb891a8db0: i32 = Constant<0>
try.c: 0x55cb891a8db0: i32 = Constant<0>
try.c: 0x55cb891a8db0: 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_1184_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_1184_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_1184_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_1184_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_1184_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_1184_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_1184_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_1184_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_1184_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: 0x5573dbe068c0: v4i64 = X86ISD::VTRUNC 0x5573dbe06790
try.c: 0x5573dbe06790: v16i32 = vselect 0x5573dbe169e0, 0x5573dbda76b0, 0x5573dbe06660
try.c: 0x5573dbe169e0: v4i1 = X86ISD::PCMPGTM 0x5573dbdff670, 0x5573dbdfb200
try.c: 0x5573dbdff670: v4i64 = X86ISD::VBROADCAST 0x5573dbd89eb0
try.c: 0x5573dbd89eb0: i64,ch = load<LD8[%lsr.iv6971]> 0x5573dbd10940, 0x5573dbdf2450, undef:i64
try.c: 0x5573dbdf2450: i64,ch = CopyFromReg 0x5573dbd10940, Register:i64 %vreg50
try.c: 0x5573dbdfb460: i64 = Register %vreg50
try.c: 0x5573dbda5d20: i64 = undef
try.c: 0x5573dbdfb200: v4i64,ch = CopyFromReg 0x5573dbd10940, Register:v4i64 %vreg13
try.c: 0x5573dbdffec0: v4i64 = Register %vreg13
try.c: 0x5573dbda76b0: v16i32 = X86ISD::VBROADCAST 0x5573dbdff8d0
try.c: 0x5573dbdff8d0: i32,ch = load<LD4[ConstantPool]> 0x5573dbd10940, 0x5573dbd89490, undef:i64
try.c: 0x5573dbd89490: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5573dbde9600: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5573dbda5d20: i64 = undef
try.c: 0x5573dbe06660: 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: 0x5573dbe06530: i32 = Constant<0>
try.c: 0x5573dbe06530: i32 = Constant<0>
try.c: 0x5573dbe06530: i32 = Constant<0>
try.c: 0x5573dbe06530: i32 = Constant<0>
try.c: 0x5573dbe06530: i32 = Constant<0>
try.c: 0x5573dbe06530: i32 = Constant<0>
try.c: 0x5573dbe06530: i32 = Constant<0>
try.c: 0x5573dbe06530: i32 = Constant<0>
try.c: 0x5573dbe06530: 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: 0x556c4fa9f900: v4i64 = X86ISD::VTRUNC 0x556c4fa9f7d0
try.c: 0x556c4fa9f7d0: v16i32 = vselect 0x556c4fa9c2e0, 0x556c4fa1fc30, 0x556c4fa9f6a0
try.c: 0x556c4fa9c2e0: v4i1 = X86ISD::PCMPGTM 0x556c4fa87ed0, 0x556c4fa83a60
try.c: 0x556c4fa87ed0: v4i64 = X86ISD::VBROADCAST 0x556c4fa200f0
try.c: 0x556c4fa200f0: i64,ch = load<LD8[%lsr.iv6971]> 0x556c4f981a30, 0x556c4fa1c4a0, undef:i64
try.c: 0x556c4fa1c4a0: i64,ch = CopyFromReg 0x556c4f981a30, Register:i64 %vreg50
try.c: 0x556c4fa83cc0: i64 = Register %vreg50
try.c: 0x556c4f9ffd70: i64 = undef
try.c: 0x556c4fa83a60: v4i64,ch = CopyFromReg 0x556c4f981a30, Register:v4i64 %vreg13
try.c: 0x556c4fa88720: v4i64 = Register %vreg13
try.c: 0x556c4fa1fc30: v16i32 = X86ISD::VBROADCAST 0x556c4fa88130
try.c: 0x556c4fa88130: i32,ch = load<LD4[ConstantPool]> 0x556c4f981a30, 0x556c4fa32330, undef:i64
try.c: 0x556c4fa32330: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556c4fa006f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556c4f9ffd70: i64 = undef
try.c: 0x556c4fa9f6a0: 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: 0x556c4fa9f570: i32 = Constant<0>
try.c: 0x556c4fa9f570: i32 = Constant<0>
try.c: 0x556c4fa9f570: i32 = Constant<0>
try.c: 0x556c4fa9f570: i32 = Constant<0>
try.c: 0x556c4fa9f570: i32 = Constant<0>
try.c: 0x556c4fa9f570: i32 = Constant<0>
try.c: 0x556c4fa9f570: i32 = Constant<0>
try.c: 0x556c4fa9f570: i32 = Constant<0>
try.c: 0x556c4fa9f570: 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: 0x55e520383bb0: v4i64 = X86ISD::VTRUNC 0x55e520383a80
try.c: 0x55e520383a80: v16i32 = vselect 0x55e520380590, 0x55e520336360, 0x55e520383950
try.c: 0x55e520380590: v4i1 = X86ISD::PCMPGTM 0x55e52037b940, 0x55e5203774d0
try.c: 0x55e52037b940: v4i64 = X86ISD::VBROADCAST 0x55e520323100
try.c: 0x55e520323100: i64,ch = load<LD8[%lsr.iv6971]> 0x55e52028c950, 0x55e5203625c0, undef:i64
try.c: 0x55e5203625c0: i64,ch = CopyFromReg 0x55e52028c950, Register:i64 %vreg50
try.c: 0x55e520377730: i64 = Register %vreg50
try.c: 0x55e5203349d0: i64 = undef
try.c: 0x55e5203774d0: v4i64,ch = CopyFromReg 0x55e52028c950, Register:v4i64 %vreg13
try.c: 0x55e52037c190: v4i64 = Register %vreg13
try.c: 0x55e520336360: v16i32 = X86ISD::VBROADCAST 0x55e52037bba0
try.c: 0x55e52037bba0: i32,ch = load<LD4[ConstantPool]> 0x55e52028c950, 0x55e5203226e0, undef:i64
try.c: 0x55e5203226e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e5203668b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e5203349d0: i64 = undef
try.c: 0x55e520383950: 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: 0x55e520383820: i32 = Constant<0>
try.c: 0x55e520383820: i32 = Constant<0>
try.c: 0x55e520383820: i32 = Constant<0>
try.c: 0x55e520383820: i32 = Constant<0>
try.c: 0x55e520383820: i32 = Constant<0>
try.c: 0x55e520383820: i32 = Constant<0>
try.c: 0x55e520383820: i32 = Constant<0>
try.c: 0x55e520383820: i32 = Constant<0>
try.c: 0x55e520383820: 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