Implementation notes: amd64, cel02, crypto_encode/256x2

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_encode
Primitive: 256x2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
28282 0 09636 792 728avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
40287 0 010444 816 768avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
40287 0 09536 800 768avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
48339 0 014013 824 800avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
50287 0 010708 816 768avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
998116 0 010244 816 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1258124 0 010508 816 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1766108 0 09444 792 728refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1862106 0 09320 800 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2062148 0 011354 800 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2292132 0 013813 824 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-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: 0x55d5653c9470: v4i64 = X86ISD::VTRUNC 0x55d5653c9340
try.c: 0x55d5653c9340: v16i32 = vselect 0x55d5653c5e50, 0x55d565357740, 0x55d5653c9210
try.c: 0x55d5653c5e50: v4i1 = X86ISD::PCMPGTM 0x55d5653aeae0, 0x55d5653aa670
try.c: 0x55d5653aeae0: v4i64 = X86ISD::VBROADCAST 0x55d5653548e0
try.c: 0x55d5653548e0: i64,ch = load<LD8[%lsr.iv6971]> 0x55d5652bf970, 0x55d5653a54d0, undef:i64
try.c: 0x55d5653a54d0: i64,ch = CopyFromReg 0x55d5652bf970, Register:i64 %vreg50
try.c: 0x55d5653aa8d0: i64 = Register %vreg50
try.c: 0x55d565355db0: i64 = undef
try.c: 0x55d5653aa670: v4i64,ch = CopyFromReg 0x55d5652bf970, Register:v4i64 %vreg13
try.c: 0x55d5653af330: v4i64 = Register %vreg13
try.c: 0x55d565357740: v16i32 = X86ISD::VBROADCAST 0x55d5653aed40
try.c: 0x55d5653aed40: i32,ch = load<LD4[ConstantPool]> 0x55d5652bf970, 0x55d565352cf0, undef:i64
try.c: 0x55d565352cf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d56536c400: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d565355db0: i64 = undef
try.c: 0x55d5653c9210: 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: 0x55d5653c90e0: i32 = Constant<0>
try.c: 0x55d5653c90e0: i32 = Constant<0>
try.c: 0x55d5653c90e0: i32 = Constant<0>
try.c: 0x55d5653c90e0: i32 = Constant<0>
try.c: 0x55d5653c90e0: i32 = Constant<0>
try.c: 0x55d5653c90e0: i32 = Constant<0>
try.c: 0x55d5653c90e0: i32 = Constant<0>
try.c: 0x55d5653c90e0: i32 = Constant<0>
try.c: 0x55d5653c90e0: 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: 0x562142ddb6d0: v4i64 = X86ISD::VTRUNC 0x562142ddb5a0
try.c: 0x562142ddb5a0: v16i32 = vselect 0x562142dd80b0, 0x562142d6c090, 0x562142ddb470
try.c: 0x562142dd80b0: v4i1 = X86ISD::PCMPGTM 0x562142dc1140, 0x562142dbec60
try.c: 0x562142dc1140: v4i64 = X86ISD::VBROADCAST 0x562142d6c550
try.c: 0x562142d6c550: i64,ch = load<LD8[%lsr.iv6971]> 0x562142cbba30, 0x562142d70d20, undef:i64
try.c: 0x562142d70d20: i64,ch = CopyFromReg 0x562142cbba30, Register:i64 %vreg50
try.c: 0x562142dbeec0: i64 = Register %vreg50
try.c: 0x562142d3ae10: i64 = undef
try.c: 0x562142dbec60: v4i64,ch = CopyFromReg 0x562142cbba30, Register:v4i64 %vreg13
try.c: 0x562142dc1990: v4i64 = Register %vreg13
try.c: 0x562142d6c090: v16i32 = X86ISD::VBROADCAST 0x562142dc13a0
try.c: 0x562142dc13a0: i32,ch = load<LD4[ConstantPool]> 0x562142cbba30, 0x562142d5add0, undef:i64
try.c: 0x562142d5add0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562142d3b790: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562142d3ae10: i64 = undef
try.c: 0x562142ddb470: 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: 0x562142ddb340: i32 = Constant<0>
try.c: 0x562142ddb340: i32 = Constant<0>
try.c: 0x562142ddb340: i32 = Constant<0>
try.c: 0x562142ddb340: i32 = Constant<0>
try.c: 0x562142ddb340: i32 = Constant<0>
try.c: 0x562142ddb340: i32 = Constant<0>
try.c: 0x562142ddb340: i32 = Constant<0>
try.c: 0x562142ddb340: i32 = Constant<0>
try.c: 0x562142ddb340: 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: 0x5585183cc540: v4i64 = X86ISD::VTRUNC 0x5585183cc410
try.c: 0x5585183cc410: v16i32 = vselect 0x5585183ddd90, 0x558518363e90, 0x5585183cc2e0
try.c: 0x5585183ddd90: v4i1 = X86ISD::PCMPGTM 0x5585183c4a10, 0x5585183c05a0
try.c: 0x5585183c4a10: v4i64 = X86ISD::VBROADCAST 0x55851837e5b0
try.c: 0x55851837e5b0: i64,ch = load<LD8[%lsr.iv6971]> 0x5585182d5950, 0x5585183a8f70, undef:i64
try.c: 0x5585183a8f70: i64,ch = CopyFromReg 0x5585182d5950, Register:i64 %vreg50
try.c: 0x5585183c0800: i64 = Register %vreg50
try.c: 0x55851837fa80: i64 = undef
try.c: 0x5585183c05a0: v4i64,ch = CopyFromReg 0x5585182d5950, Register:v4i64 %vreg13
try.c: 0x5585183c5260: v4i64 = Register %vreg13
try.c: 0x558518363e90: v16i32 = X86ISD::VBROADCAST 0x5585183c4c70
try.c: 0x5585183c4c70: i32,ch = load<LD4[ConstantPool]> 0x5585182d5950, 0x558518368320, undef:i64
try.c: 0x558518368320: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5585183af980: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55851837fa80: i64 = undef
try.c: 0x5585183cc2e0: 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: 0x5585183cc1b0: i32 = Constant<0>
try.c: 0x5585183cc1b0: i32 = Constant<0>
try.c: 0x5585183cc1b0: i32 = Constant<0>
try.c: 0x5585183cc1b0: i32 = Constant<0>
try.c: 0x5585183cc1b0: i32 = Constant<0>
try.c: 0x5585183cc1b0: i32 = Constant<0>
try.c: 0x5585183cc1b0: i32 = Constant<0>
try.c: 0x5585183cc1b0: i32 = Constant<0>
try.c: 0x5585183cc1b0: 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:7:16: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a0 = _mm256_loadu_si256(0+(__m256i *) v);
encode.c: ^
encode.c: encode.c:8:16: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a1 = _mm256_loadu_si256(1+(__m256i *) v);
encode.c: ^
encode.c: encode.c:9:16: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a2 = _mm256_loadu_si256(2+(__m256i *) v);
encode.c: ^
encode.c: encode.c:10:16: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a3 = _mm256_loadu_si256(3+(__m256i *) v);
encode.c: ^
encode.c: encode.c:11:16: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a4 = _mm256_loadu_si256(4+(__m256i *) v);
encode.c: ^
encode.c: encode.c:12:16: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a5 = _mm256_loadu_si256(5+(__m256i *) v);
encode.c: ^
encode.c: encode.c:13:16: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a6 = _mm256_loadu_si256(6+(__m256i *) v);
encode.c: ^
encode.c: encode.c:14:16: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a7 = _mm256_loadu_si256(7+(__m256i *) v);
encode.c: ^
encode.c: encode.c:15:20: error: always_inline function '_mm256_set1_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_256x2_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: 0x55b4f3473170: v4i64 = X86ISD::VTRUNC 0x55b4f3473040
try.c: 0x55b4f3473040: v16i32 = vselect 0x55b4f345eec0, 0x55b4f3413160, 0x55b4f3472f10
try.c: 0x55b4f345eec0: v4i1 = X86ISD::PCMPGTM 0x55b4f34587f0, 0x55b4f3454380
try.c: 0x55b4f34587f0: v4i64 = X86ISD::VBROADCAST 0x55b4f33fc9c0
try.c: 0x55b4f33fc9c0: i64,ch = load<LD8[%lsr.iv6971]> 0x55b4f3369930, 0x55b4f3446010, undef:i64
try.c: 0x55b4f3446010: i64,ch = CopyFromReg 0x55b4f3369930, Register:i64 %vreg50
try.c: 0x55b4f34545e0: i64 = Register %vreg50
try.c: 0x55b4f34117d0: i64 = undef
try.c: 0x55b4f3454380: v4i64,ch = CopyFromReg 0x55b4f3369930, Register:v4i64 %vreg13
try.c: 0x55b4f3459040: v4i64 = Register %vreg13
try.c: 0x55b4f3413160: v16i32 = X86ISD::VBROADCAST 0x55b4f3458a50
try.c: 0x55b4f3458a50: i32,ch = load<LD4[ConstantPool]> 0x55b4f3369930, 0x55b4f33fbfa0, undef:i64
try.c: 0x55b4f33fbfa0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b4f343e2a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b4f34117d0: i64 = undef
try.c: 0x55b4f3472f10: 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: 0x55b4f3472de0: i32 = Constant<0>
try.c: 0x55b4f3472de0: i32 = Constant<0>
try.c: 0x55b4f3472de0: i32 = Constant<0>
try.c: 0x55b4f3472de0: i32 = Constant<0>
try.c: 0x55b4f3472de0: i32 = Constant<0>
try.c: 0x55b4f3472de0: i32 = Constant<0>
try.c: 0x55b4f3472de0: i32 = Constant<0>
try.c: 0x55b4f3472de0: i32 = Constant<0>
try.c: 0x55b4f3472de0: 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: 0x55e51566db00: v4i64 = X86ISD::VTRUNC 0x55e51566d9d0
try.c: 0x55e51566d9d0: v16i32 = vselect 0x55e5156684d0, 0x55e5155eec90, 0x55e51566d8a0
try.c: 0x55e5156684d0: v4i1 = X86ISD::PCMPGTM 0x55e515653d90, 0x55e51564f920
try.c: 0x55e515653d90: v4i64 = X86ISD::VBROADCAST 0x55e5155ef150
try.c: 0x55e5155ef150: i64,ch = load<LD8[%lsr.iv6971]> 0x55e51554da20, 0x55e5155f4150, undef:i64
try.c: 0x55e5155f4150: i64,ch = CopyFromReg 0x55e51554da20, Register:i64 %vreg50
try.c: 0x55e51564fb80: i64 = Register %vreg50
try.c: 0x55e5155e9170: i64 = undef
try.c: 0x55e51564f920: v4i64,ch = CopyFromReg 0x55e51554da20, Register:v4i64 %vreg13
try.c: 0x55e5156545e0: v4i64 = Register %vreg13
try.c: 0x55e5155eec90: v16i32 = X86ISD::VBROADCAST 0x55e515653ff0
try.c: 0x55e515653ff0: i32,ch = load<LD4[ConstantPool]> 0x55e51554da20, 0x55e5155f1630, undef:i64
try.c: 0x55e5155f1630: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e5155e9af0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e5155e9170: i64 = undef
try.c: 0x55e51566d8a0: 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: 0x55e51566d770: i32 = Constant<0>
try.c: 0x55e51566d770: i32 = Constant<0>
try.c: 0x55e51566d770: i32 = Constant<0>
try.c: 0x55e51566d770: i32 = Constant<0>
try.c: 0x55e51566d770: i32 = Constant<0>
try.c: 0x55e51566d770: i32 = Constant<0>
try.c: 0x55e51566d770: i32 = Constant<0>
try.c: 0x55e51566d770: i32 = Constant<0>
try.c: 0x55e51566d770: 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: 0x55c29e0ceb60: v4i64 = X86ISD::VTRUNC 0x55c29e0cea30
try.c: 0x55c29e0cea30: v16i32 = vselect 0x55c29e0e9ba0, 0x55c29e06b480, 0x55c29e0ce900
try.c: 0x55c29e0e9ba0: v4i1 = X86ISD::PCMPGTM 0x55c29e0c7d00, 0x55c29e0c3890
try.c: 0x55c29e0c7d00: v4i64 = X86ISD::VBROADCAST 0x55c29e06ec90
try.c: 0x55c29e06ec90: i64,ch = load<LD8[%lsr.iv6971]> 0x55c29dfd8930, 0x55c29e0bb050, undef:i64
try.c: 0x55c29e0bb050: i64,ch = CopyFromReg 0x55c29dfd8930, Register:i64 %vreg50
try.c: 0x55c29e0c3af0: i64 = Register %vreg50
try.c: 0x55c29e070160: i64 = undef
try.c: 0x55c29e0c3890: v4i64,ch = CopyFromReg 0x55c29dfd8930, Register:v4i64 %vreg13
try.c: 0x55c29e0c8550: v4i64 = Register %vreg13
try.c: 0x55c29e06b480: v16i32 = X86ISD::VBROADCAST 0x55c29e0c7f60
try.c: 0x55c29e0c7f60: i32,ch = load<LD4[ConstantPool]> 0x55c29dfd8930, 0x55c29e0939b0, undef:i64
try.c: 0x55c29e0939b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c29e0a5d70: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c29e070160: i64 = undef
try.c: 0x55c29e0ce900: 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: 0x55c29e0ce7d0: i32 = Constant<0>
try.c: 0x55c29e0ce7d0: i32 = Constant<0>
try.c: 0x55c29e0ce7d0: i32 = Constant<0>
try.c: 0x55c29e0ce7d0: i32 = Constant<0>
try.c: 0x55c29e0ce7d0: i32 = Constant<0>
try.c: 0x55c29e0ce7d0: i32 = Constant<0>
try.c: 0x55c29e0ce7d0: i32 = Constant<0>
try.c: 0x55c29e0ce7d0: i32 = Constant<0>
try.c: 0x55c29e0ce7d0: 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