Implementation notes: amd64, cel02, crypto_encode/857x1723round

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_encode
Primitive: 857x1723round
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
13481791 0 011948 816 768avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
16141908 0 015581 824 800avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1630576 0 015989 824 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
20321680 0 011084 792 728avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
25481596 0 010880 800 768avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
26821670 0 012084 816 768avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3744116 0 011980 816 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4552129 0 012252 816 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4730112 0 011212 792 728refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
5196117 0 011104 800 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5792393 0 013330 800 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130

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: 0x563d075fa400: v4i64 = X86ISD::VTRUNC 0x563d075fa2d0
try.c: 0x563d075fa2d0: v16i32 = vselect 0x563d075e7bf0, 0x563d07580330, 0x563d075fa1a0
try.c: 0x563d075e7bf0: v4i1 = X86ISD::PCMPGTM 0x563d075dfa80, 0x563d075db610
try.c: 0x563d075dfa80: v4i64 = X86ISD::VBROADCAST 0x563d07594f00
try.c: 0x563d07594f00: i64,ch = load<LD8[%lsr.iv6971]> 0x563d074f0960, 0x563d075c9a00, undef:i64
try.c: 0x563d075c9a00: i64,ch = CopyFromReg 0x563d074f0960, Register:i64 %vreg50
try.c: 0x563d075db870: i64 = Register %vreg50
try.c: 0x563d0757e9a0: i64 = undef
try.c: 0x563d075db610: v4i64,ch = CopyFromReg 0x563d074f0960, Register:v4i64 %vreg13
try.c: 0x563d075e02d0: v4i64 = Register %vreg13
try.c: 0x563d07580330: v16i32 = X86ISD::VBROADCAST 0x563d075dfce0
try.c: 0x563d075dfce0: i32,ch = load<LD4[ConstantPool]> 0x563d074f0960, 0x563d075944e0, undef:i64
try.c: 0x563d075944e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563d075c6160: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563d0757e9a0: i64 = undef
try.c: 0x563d075fa1a0: 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: 0x563d075fa070: i32 = Constant<0>
try.c: 0x563d075fa070: i32 = Constant<0>
try.c: 0x563d075fa070: i32 = Constant<0>
try.c: 0x563d075fa070: i32 = Constant<0>
try.c: 0x563d075fa070: i32 = Constant<0>
try.c: 0x563d075fa070: i32 = Constant<0>
try.c: 0x563d075fa070: i32 = Constant<0>
try.c: 0x563d075fa070: i32 = Constant<0>
try.c: 0x563d075fa070: 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: 0x55c5144cc090: v4i64 = X86ISD::VTRUNC 0x55c5144cbf60
try.c: 0x55c5144cbf60: v16i32 = vselect 0x55c5144c6a60, 0x55c514458d10, 0x55c5144cbe30
try.c: 0x55c5144c6a60: v4i1 = X86ISD::PCMPGTM 0x55c5144bfe40, 0x55c5144bb9d0
try.c: 0x55c5144bfe40: v4i64 = X86ISD::VBROADCAST 0x55c5144591d0
try.c: 0x55c5144591d0: i64,ch = load<LD8[%lsr.iv6971]> 0x55c5143b9a30, 0x55c51445abc0, undef:i64
try.c: 0x55c51445abc0: i64,ch = CopyFromReg 0x55c5143b9a30, Register:i64 %vreg50
try.c: 0x55c5144bbc30: i64 = Register %vreg50
try.c: 0x55c514454060: i64 = undef
try.c: 0x55c5144bb9d0: v4i64,ch = CopyFromReg 0x55c5143b9a30, Register:v4i64 %vreg13
try.c: 0x55c5144c0690: v4i64 = Register %vreg13
try.c: 0x55c514458d10: v16i32 = X86ISD::VBROADCAST 0x55c5144c00a0
try.c: 0x55c5144c00a0: i32,ch = load<LD4[ConstantPool]> 0x55c5143b9a30, 0x55c514437c80, undef:i64
try.c: 0x55c514437c80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c5144549e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c514454060: i64 = undef
try.c: 0x55c5144cbe30: 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: 0x55c5144cbd00: i32 = Constant<0>
try.c: 0x55c5144cbd00: i32 = Constant<0>
try.c: 0x55c5144cbd00: i32 = Constant<0>
try.c: 0x55c5144cbd00: i32 = Constant<0>
try.c: 0x55c5144cbd00: i32 = Constant<0>
try.c: 0x55c5144cbd00: i32 = Constant<0>
try.c: 0x55c5144cbd00: i32 = Constant<0>
try.c: 0x55c5144cbd00: i32 = Constant<0>
try.c: 0x55c5144cbd00: 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: 0x55da3d9e11c0: v4i64 = X86ISD::VTRUNC 0x55da3d9e1090
try.c: 0x55da3d9e1090: v16i32 = vselect 0x55da3d9c1c90, 0x55da3d96eec0, 0x55da3d9e0f60
try.c: 0x55da3d9c1c90: v4i1 = X86ISD::PCMPGTM 0x55da3d9c9860, 0x55da3d9c53f0
try.c: 0x55da3d9c9860: v4i64 = X86ISD::VBROADCAST 0x55da3d9712b0
try.c: 0x55da3d9712b0: i64,ch = load<LD8[%lsr.iv6971]> 0x55da3d8da950, 0x55da3d9b8250, undef:i64
try.c: 0x55da3d9b8250: i64,ch = CopyFromReg 0x55da3d8da950, Register:i64 %vreg50
try.c: 0x55da3d9c5650: i64 = Register %vreg50
try.c: 0x55da3d96d530: i64 = undef
try.c: 0x55da3d9c53f0: v4i64,ch = CopyFromReg 0x55da3d8da950, Register:v4i64 %vreg13
try.c: 0x55da3d9ca0b0: v4i64 = Register %vreg13
try.c: 0x55da3d96eec0: v16i32 = X86ISD::VBROADCAST 0x55da3d9c9ac0
try.c: 0x55da3d9c9ac0: i32,ch = load<LD4[ConstantPool]> 0x55da3d8da950, 0x55da3d970890, undef:i64
try.c: 0x55da3d970890: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55da3d965330: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55da3d96d530: i64 = undef
try.c: 0x55da3d9e0f60: 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: 0x55da3d9e0e30: i32 = Constant<0>
try.c: 0x55da3d9e0e30: i32 = Constant<0>
try.c: 0x55da3d9e0e30: i32 = Constant<0>
try.c: 0x55da3d9e0e30: i32 = Constant<0>
try.c: 0x55da3d9e0e30: i32 = Constant<0>
try.c: 0x55da3d9e0e30: i32 = Constant<0>
try.c: 0x55da3d9e0e30: i32 = Constant<0>
try.c: 0x55da3d9e0e30: i32 = Constant<0>
try.c: 0x55da3d9e0e30: 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
encode.c: encode.c:34:9: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_loadu_si256((__m256i *) reading);
encode.c: ^
encode.c: encode.c:35:9: error: always_inline function '_mm256_mulhrs_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923));
encode.c: ^
encode.c: encode.c:35:31: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923));
encode.c: ^
encode.c: encode.c:36:9: error: always_inline function '_mm256_add_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_add_epi16(x,_mm256_add_epi16(x,x));
encode.c: ^
encode.c: encode.c:36:28: error: always_inline function '_mm256_add_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_add_epi16(x,_mm256_add_epi16(x,x));
encode.c: ^
encode.c: encode.c:37:9: error: always_inline function '_mm256_add_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_add_epi16(x,_mm256_set1_epi16(2583));
encode.c: ^
encode.c: encode.c:37:28: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_add_epi16(x,_mm256_set1_epi16(2583));
encode.c: ^
encode.c: encode.c:38:10: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x &= _mm256_set1_epi16(16383);
encode.c: ^
encode.c: encode.c:39:9: error: always_inline function '_mm256_mulhi_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_857x1723round_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.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: 0x561a768123d0: v4i64 = X86ISD::VTRUNC 0x561a768122a0
try.c: 0x561a768122a0: v16i32 = vselect 0x561a7680edb0, 0x561a767b7260, 0x561a76812170
try.c: 0x561a7680edb0: v4i1 = X86ISD::PCMPGTM 0x561a767f7a40, 0x561a767f35d0
try.c: 0x561a767f7a40: v4i64 = X86ISD::VBROADCAST 0x561a7679bb40
try.c: 0x561a7679bb40: i64,ch = load<LD8[%lsr.iv6971]> 0x561a76708950, 0x561a767e16b0, undef:i64
try.c: 0x561a767e16b0: i64,ch = CopyFromReg 0x561a76708950, Register:i64 %vreg50
try.c: 0x561a767f3830: i64 = Register %vreg50
try.c: 0x561a767b58d0: i64 = undef
try.c: 0x561a767f35d0: v4i64,ch = CopyFromReg 0x561a76708950, Register:v4i64 %vreg13
try.c: 0x561a767f8290: v4i64 = Register %vreg13
try.c: 0x561a767b7260: v16i32 = X86ISD::VBROADCAST 0x561a767f7ca0
try.c: 0x561a767f7ca0: i32,ch = load<LD4[ConstantPool]> 0x561a76708950, 0x561a7679b120, undef:i64
try.c: 0x561a7679b120: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x561a767e2ca0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x561a767b58d0: i64 = undef
try.c: 0x561a76812170: 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: 0x561a76812040: i32 = Constant<0>
try.c: 0x561a76812040: i32 = Constant<0>
try.c: 0x561a76812040: i32 = Constant<0>
try.c: 0x561a76812040: i32 = Constant<0>
try.c: 0x561a76812040: i32 = Constant<0>
try.c: 0x561a76812040: i32 = Constant<0>
try.c: 0x561a76812040: i32 = Constant<0>
try.c: 0x561a76812040: i32 = Constant<0>
try.c: 0x561a76812040: 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: 0x5647d20794e0: v4i64 = X86ISD::VTRUNC 0x5647d20793b0
try.c: 0x5647d20793b0: v16i32 = vselect 0x5647d2058f40, 0x5647d1ff12c0, 0x5647d2079280
try.c: 0x5647d2058f40: v4i1 = X86ISD::PCMPGTM 0x5647d2054f10, 0x5647d2050aa0
try.c: 0x5647d2054f10: v4i64 = X86ISD::VBROADCAST 0x5647d1ff1780
try.c: 0x5647d1ff1780: i64,ch = load<LD8[%lsr.iv6971]> 0x5647d1f4ea30, 0x5647d1ff6aa0, undef:i64
try.c: 0x5647d1ff6aa0: i64,ch = CopyFromReg 0x5647d1f4ea30, Register:i64 %vreg50
try.c: 0x5647d2050d00: i64 = Register %vreg50
try.c: 0x5647d1fe89a0: i64 = undef
try.c: 0x5647d2050aa0: v4i64,ch = CopyFromReg 0x5647d1f4ea30, Register:v4i64 %vreg13
try.c: 0x5647d2055760: v4i64 = Register %vreg13
try.c: 0x5647d1ff12c0: v16i32 = X86ISD::VBROADCAST 0x5647d2055170
try.c: 0x5647d2055170: i32,ch = load<LD4[ConstantPool]> 0x5647d1f4ea30, 0x5647d1ff4860, undef:i64
try.c: 0x5647d1ff4860: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5647d1fe9320: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5647d1fe89a0: i64 = undef
try.c: 0x5647d2079280: 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: 0x5647d2079150: i32 = Constant<0>
try.c: 0x5647d2079150: i32 = Constant<0>
try.c: 0x5647d2079150: i32 = Constant<0>
try.c: 0x5647d2079150: i32 = Constant<0>
try.c: 0x5647d2079150: i32 = Constant<0>
try.c: 0x5647d2079150: i32 = Constant<0>
try.c: 0x5647d2079150: i32 = Constant<0>
try.c: 0x5647d2079150: i32 = Constant<0>
try.c: 0x5647d2079150: 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: 0x5560c25a37e0: v4i64 = X86ISD::VTRUNC 0x5560c25a36b0
try.c: 0x5560c25a36b0: v16i32 = vselect 0x5560c258eea0, 0x5560c2546f20, 0x5560c25a3580
try.c: 0x5560c258eea0: v4i1 = X86ISD::PCMPGTM 0x5560c258be80, 0x5560c2587a10
try.c: 0x5560c258be80: v4i64 = X86ISD::VBROADCAST 0x5560c252cae0
try.c: 0x5560c252cae0: i64,ch = load<LD8[%lsr.iv6971]> 0x5560c249c950, 0x5560c257f100, undef:i64
try.c: 0x5560c257f100: i64,ch = CopyFromReg 0x5560c249c950, Register:i64 %vreg50
try.c: 0x5560c2587c70: i64 = Register %vreg50
try.c: 0x5560c2545590: i64 = undef
try.c: 0x5560c2587a10: v4i64,ch = CopyFromReg 0x5560c249c950, Register:v4i64 %vreg13
try.c: 0x5560c258c6d0: v4i64 = Register %vreg13
try.c: 0x5560c2546f20: v16i32 = X86ISD::VBROADCAST 0x5560c258c0e0
try.c: 0x5560c258c0e0: i32,ch = load<LD4[ConstantPool]> 0x5560c249c950, 0x5560c252c0c0, undef:i64
try.c: 0x5560c252c0c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5560c2544010: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5560c2545590: i64 = undef
try.c: 0x5560c25a3580: 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: 0x5560c25a3450: i32 = Constant<0>
try.c: 0x5560c25a3450: i32 = Constant<0>
try.c: 0x5560c25a3450: i32 = Constant<0>
try.c: 0x5560c25a3450: i32 = Constant<0>
try.c: 0x5560c25a3450: i32 = Constant<0>
try.c: 0x5560c25a3450: i32 = Constant<0>
try.c: 0x5560c25a3450: i32 = Constant<0>
try.c: 0x5560c25a3450: i32 = Constant<0>
try.c: 0x5560c25a3450: 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