Implementation notes: amd64, cel02, crypto_encode/653xfreeze3

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_encode
Primitive: 653xfreeze3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
224143 0 09516 792 728avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
248167 0 010588 816 768avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
252167 0 013845 824 800avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
342167 0 09448 800 768avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5161330 0 015045 824 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
594163 0 010324 816 768avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
160090 0 09460 792 728refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2274504 0 011738 800 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2358107 0 010492 816 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
305695 0 09352 800 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3986105 0 010244 816 768refgcc_-march=native_-mtune=native_-O_-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: 0x55d45e478f00: v4i64 = X86ISD::VTRUNC 0x55d45e478dd0
try.c: 0x55d45e478dd0: v16i32 = vselect 0x55d45e47ca20, 0x55d45e3f7f90, 0x55d45e478ca0
try.c: 0x55d45e47ca20: v4i1 = X86ISD::PCMPGTM 0x55d45e4758f0, 0x55d45e471480
try.c: 0x55d45e4758f0: v4i64 = X86ISD::VBROADCAST 0x55d45e431980
try.c: 0x55d45e431980: i64,ch = load<LD8[%lsr.iv6971]> 0x55d45e386950, 0x55d45e468910, undef:i64
try.c: 0x55d45e468910: i64,ch = CopyFromReg 0x55d45e386950, Register:i64 %vreg50
try.c: 0x55d45e4716e0: i64 = Register %vreg50
try.c: 0x55d45e3f6600: i64 = undef
try.c: 0x55d45e471480: v4i64,ch = CopyFromReg 0x55d45e386950, Register:v4i64 %vreg13
try.c: 0x55d45e476140: v4i64 = Register %vreg13
try.c: 0x55d45e3f7f90: v16i32 = X86ISD::VBROADCAST 0x55d45e475b50
try.c: 0x55d45e475b50: i32,ch = load<LD4[ConstantPool]> 0x55d45e386950, 0x55d45e430f60, undef:i64
try.c: 0x55d45e430f60: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d45e45f5a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d45e3f6600: i64 = undef
try.c: 0x55d45e478ca0: 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: 0x55d45e478b70: i32 = Constant<0>
try.c: 0x55d45e478b70: i32 = Constant<0>
try.c: 0x55d45e478b70: i32 = Constant<0>
try.c: 0x55d45e478b70: i32 = Constant<0>
try.c: 0x55d45e478b70: i32 = Constant<0>
try.c: 0x55d45e478b70: i32 = Constant<0>
try.c: 0x55d45e478b70: i32 = Constant<0>
try.c: 0x55d45e478b70: i32 = Constant<0>
try.c: 0x55d45e478b70: 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: 0x55fce4696870: v4i64 = X86ISD::VTRUNC 0x55fce4696740
try.c: 0x55fce4696740: v16i32 = vselect 0x55fce4683b40, 0x55fce4610e70, 0x55fce4696610
try.c: 0x55fce4683b40: v4i1 = X86ISD::PCMPGTM 0x55fce467df10, 0x55fce4679aa0
try.c: 0x55fce467df10: v4i64 = X86ISD::VBROADCAST 0x55fce4611330
try.c: 0x55fce4611330: i64,ch = load<LD8[%lsr.iv6971]> 0x55fce4577a40, 0x55fce461a0a0, undef:i64
try.c: 0x55fce461a0a0: i64,ch = CopyFromReg 0x55fce4577a40, Register:i64 %vreg50
try.c: 0x55fce4679d00: i64 = Register %vreg50
try.c: 0x55fce4614d20: i64 = undef
try.c: 0x55fce4679aa0: v4i64,ch = CopyFromReg 0x55fce4577a40, Register:v4i64 %vreg13
try.c: 0x55fce467e760: v4i64 = Register %vreg13
try.c: 0x55fce4610e70: v16i32 = X86ISD::VBROADCAST 0x55fce467e170
try.c: 0x55fce467e170: i32,ch = load<LD4[ConstantPool]> 0x55fce4577a40, 0x55fce4618670, undef:i64
try.c: 0x55fce4618670: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55fce46156a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55fce4614d20: i64 = undef
try.c: 0x55fce4696610: 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: 0x55fce46964e0: i32 = Constant<0>
try.c: 0x55fce46964e0: i32 = Constant<0>
try.c: 0x55fce46964e0: i32 = Constant<0>
try.c: 0x55fce46964e0: i32 = Constant<0>
try.c: 0x55fce46964e0: i32 = Constant<0>
try.c: 0x55fce46964e0: i32 = Constant<0>
try.c: 0x55fce46964e0: i32 = Constant<0>
try.c: 0x55fce46964e0: i32 = Constant<0>
try.c: 0x55fce46964e0: 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: 0x55fa9a141380: v4i64 = X86ISD::VTRUNC 0x55fa9a141250
try.c: 0x55fa9a141250: v16i32 = vselect 0x55fa9a118c00, 0x55fa9a0f5bf0, 0x55fa9a141120
try.c: 0x55fa9a118c00: v4i1 = X86ISD::PCMPGTM 0x55fa9a129590, 0x55fa9a125120
try.c: 0x55fa9a129590: v4i64 = X86ISD::VBROADCAST 0x55fa9a0c95b0
try.c: 0x55fa9a0c95b0: i64,ch = load<LD8[%lsr.iv6971]> 0x55fa9a03a950, 0x55fa9a112870, undef:i64
try.c: 0x55fa9a112870: i64,ch = CopyFromReg 0x55fa9a03a950, Register:i64 %vreg50
try.c: 0x55fa9a125380: i64 = Register %vreg50
try.c: 0x55fa9a0caa80: i64 = undef
try.c: 0x55fa9a125120: v4i64,ch = CopyFromReg 0x55fa9a03a950, Register:v4i64 %vreg13
try.c: 0x55fa9a129de0: v4i64 = Register %vreg13
try.c: 0x55fa9a0f5bf0: v16i32 = X86ISD::VBROADCAST 0x55fa9a1297f0
try.c: 0x55fa9a1297f0: i32,ch = load<LD4[ConstantPool]> 0x55fa9a03a950, 0x55fa9a0d8ad0, undef:i64
try.c: 0x55fa9a0d8ad0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55fa9a0e7150: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55fa9a0caa80: i64 = undef
try.c: 0x55fa9a141120: 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: 0x55fa9a140ff0: i32 = Constant<0>
try.c: 0x55fa9a140ff0: i32 = Constant<0>
try.c: 0x55fa9a140ff0: i32 = Constant<0>
try.c: 0x55fa9a140ff0: i32 = Constant<0>
try.c: 0x55fa9a140ff0: i32 = Constant<0>
try.c: 0x55fa9a140ff0: i32 = Constant<0>
try.c: 0x55fa9a140ff0: i32 = Constant<0>
try.c: 0x55fa9a140ff0: i32 = Constant<0>
try.c: 0x55fa9a140ff0: 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:15:19: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653xfreeze3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i x = _mm256_loadu_si256((__m256i *) r);
encode.c: ^
encode.c: encode.c:16:19: error: always_inline function '_mm256_mulhrs_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653xfreeze3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923));
encode.c: ^
encode.c: encode.c:16:41: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653xfreeze3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923));
encode.c: ^
encode.c: encode.c:17:11: error: always_inline function '_mm256_sub_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653xfreeze3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_sub_epi16(x,y);
encode.c: ^
encode.c: encode.c:18:11: error: always_inline function '_mm256_add_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653xfreeze3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: y = _mm256_add_epi16(y,y);
encode.c: ^
encode.c: encode.c:19:11: error: always_inline function '_mm256_sub_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653xfreeze3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: x = _mm256_sub_epi16(x,y);
encode.c: ^
encode.c: encode.c:20:20: error: always_inline function '_mm256_setzero_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653xfreeze3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m128i x0 = _mm256_extractf128_si256(x,0);
encode.c: ^
encode.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/avxintrin.h:1213:14: note: expanded from macro '_mm256_extractf128_si256'
encode.c: (__v4di)(_mm256_setzero_si256()), \
encode.c: ^
encode.c: encode.c:21:20: error: always_inline function '_mm256_setzero_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653xfreeze3_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: 0x557dd4d82d80: v4i64 = X86ISD::VTRUNC 0x557dd4d82c50
try.c: 0x557dd4d82c50: v16i32 = vselect 0x557dd4d76340, 0x557dd4d215e0, 0x557dd4d82b20
try.c: 0x557dd4d76340: v4i1 = X86ISD::PCMPGTM 0x557dd4d7d750, 0x557dd4d792e0
try.c: 0x557dd4d7d750: v4i64 = X86ISD::VBROADCAST 0x557dd4d07090
try.c: 0x557dd4d07090: i64,ch = load<LD8[%lsr.iv6971]> 0x557dd4c8e970, 0x557dd4d70530, undef:i64
try.c: 0x557dd4d70530: i64,ch = CopyFromReg 0x557dd4c8e970, Register:i64 %vreg50
try.c: 0x557dd4d79540: i64 = Register %vreg50
try.c: 0x557dd4d08560: i64 = undef
try.c: 0x557dd4d792e0: v4i64,ch = CopyFromReg 0x557dd4c8e970, Register:v4i64 %vreg13
try.c: 0x557dd4d7dfa0: v4i64 = Register %vreg13
try.c: 0x557dd4d215e0: v16i32 = X86ISD::VBROADCAST 0x557dd4d7d9b0
try.c: 0x557dd4d7d9b0: i32,ch = load<LD4[ConstantPool]> 0x557dd4c8e970, 0x557dd4d28400, undef:i64
try.c: 0x557dd4d28400: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557dd4d674b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557dd4d08560: i64 = undef
try.c: 0x557dd4d82b20: 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: 0x557dd4d829f0: i32 = Constant<0>
try.c: 0x557dd4d829f0: i32 = Constant<0>
try.c: 0x557dd4d829f0: i32 = Constant<0>
try.c: 0x557dd4d829f0: i32 = Constant<0>
try.c: 0x557dd4d829f0: i32 = Constant<0>
try.c: 0x557dd4d829f0: i32 = Constant<0>
try.c: 0x557dd4d829f0: i32 = Constant<0>
try.c: 0x557dd4d829f0: i32 = Constant<0>
try.c: 0x557dd4d829f0: 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: 0x562722f9c2d0: v4i64 = X86ISD::VTRUNC 0x562722f9c1a0
try.c: 0x562722f9c1a0: v16i32 = vselect 0x562722f79620, 0x562722f133a0, 0x562722f9c070
try.c: 0x562722f79620: v4i1 = X86ISD::PCMPGTM 0x562722f78610, 0x562722f739e0
try.c: 0x562722f78610: v4i64 = X86ISD::VBROADCAST 0x562722f13860
try.c: 0x562722f13860: i64,ch = load<LD8[%lsr.iv6971]> 0x562722e71a30, 0x562722f22f00, undef:i64
try.c: 0x562722f22f00: i64,ch = CopyFromReg 0x562722e71a30, Register:i64 %vreg50
try.c: 0x562722f73c40: i64 = Register %vreg50
try.c: 0x562722f0f010: i64 = undef
try.c: 0x562722f739e0: v4i64,ch = CopyFromReg 0x562722e71a30, Register:v4i64 %vreg13
try.c: 0x562722f78e60: v4i64 = Register %vreg13
try.c: 0x562722f133a0: v16i32 = X86ISD::VBROADCAST 0x562722f78870
try.c: 0x562722f78870: i32,ch = load<LD4[ConstantPool]> 0x562722e71a30, 0x562722f15d40, undef:i64
try.c: 0x562722f15d40: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562722f0f990: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562722f0f010: i64 = undef
try.c: 0x562722f9c070: 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: 0x562722f9bf40: i32 = Constant<0>
try.c: 0x562722f9bf40: i32 = Constant<0>
try.c: 0x562722f9bf40: i32 = Constant<0>
try.c: 0x562722f9bf40: i32 = Constant<0>
try.c: 0x562722f9bf40: i32 = Constant<0>
try.c: 0x562722f9bf40: i32 = Constant<0>
try.c: 0x562722f9bf40: i32 = Constant<0>
try.c: 0x562722f9bf40: i32 = Constant<0>
try.c: 0x562722f9bf40: 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: 0x55949f60ff70: v4i64 = X86ISD::VTRUNC 0x55949f60fe40
try.c: 0x55949f60fe40: v16i32 = vselect 0x55949f6194d0, 0x55949f59c760, 0x55949f60fd10
try.c: 0x55949f6194d0: v4i1 = X86ISD::PCMPGTM 0x55949f5f57a0, 0x55949f5f1330
try.c: 0x55949f5f57a0: v4i64 = X86ISD::VBROADCAST 0x55949f5c1f70
try.c: 0x55949f5c1f70: i64,ch = load<LD8[%lsr.iv6971]> 0x55949f506930, 0x55949f575fc0, undef:i64
try.c: 0x55949f575fc0: i64,ch = CopyFromReg 0x55949f506930, Register:i64 %vreg50
try.c: 0x55949f5f1590: i64 = Register %vreg50
try.c: 0x55949f5c3440: i64 = undef
try.c: 0x55949f5f1330: v4i64,ch = CopyFromReg 0x55949f506930, Register:v4i64 %vreg13
try.c: 0x55949f5f5ff0: v4i64 = Register %vreg13
try.c: 0x55949f59c760: v16i32 = X86ISD::VBROADCAST 0x55949f5f5a00
try.c: 0x55949f5f5a00: i32,ch = load<LD4[ConstantPool]> 0x55949f506930, 0x55949f5c1550, undef:i64
try.c: 0x55949f5c1550: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55949f5e3a70: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55949f5c3440: i64 = undef
try.c: 0x55949f60fd10: 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: 0x55949f60fbe0: i32 = Constant<0>
try.c: 0x55949f60fbe0: i32 = Constant<0>
try.c: 0x55949f60fbe0: i32 = Constant<0>
try.c: 0x55949f60fbe0: i32 = Constant<0>
try.c: 0x55949f60fbe0: i32 = Constant<0>
try.c: 0x55949f60fbe0: i32 = Constant<0>
try.c: 0x55949f60fbe0: i32 = Constant<0>
try.c: 0x55949f60fbe0: i32 = Constant<0>
try.c: 0x55949f60fbe0: 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