Implementation notes: amd64, cel02, crypto_encode/653x3

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_encode
Primitive: 653x3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
86437 0 09804 792 728avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
114465 0 09704 800 768avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
118473 0 010644 816 768avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
120470 0 014149 824 800avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
288470 0 010892 816 768avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4841819 0 015525 824 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
698133 0 010524 816 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
762120 0 09336 800 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
804126 0 010260 816 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1378126 0 011322 800 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1466119 0 09460 792 728refclang_-march=native_-Os_-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: 0x55b837e6b3b0: v4i64 = X86ISD::VTRUNC 0x55b837e6b280
try.c: 0x55b837e6b280: v16i32 = vselect 0x55b837e765e0, 0x55b837dfcad0, 0x55b837e6b150
try.c: 0x55b837e765e0: v4i1 = X86ISD::PCMPGTM 0x55b837e53a50, 0x55b837e4f5e0
try.c: 0x55b837e53a50: v4i64 = X86ISD::VBROADCAST 0x55b837df9c70
try.c: 0x55b837df9c70: i64,ch = load<LD8[%lsr.iv6971]> 0x55b837d64950, 0x55b837e4a440, undef:i64
try.c: 0x55b837e4a440: i64,ch = CopyFromReg 0x55b837d64950, Register:i64 %vreg50
try.c: 0x55b837e4f840: i64 = Register %vreg50
try.c: 0x55b837dfb140: i64 = undef
try.c: 0x55b837e4f5e0: v4i64,ch = CopyFromReg 0x55b837d64950, Register:v4i64 %vreg13
try.c: 0x55b837e542a0: v4i64 = Register %vreg13
try.c: 0x55b837dfcad0: v16i32 = X86ISD::VBROADCAST 0x55b837e53cb0
try.c: 0x55b837e53cb0: i32,ch = load<LD4[ConstantPool]> 0x55b837d64950, 0x55b837df8080, undef:i64
try.c: 0x55b837df8080: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b837e47410: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b837dfb140: i64 = undef
try.c: 0x55b837e6b150: 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: 0x55b837e6b020: i32 = Constant<0>
try.c: 0x55b837e6b020: i32 = Constant<0>
try.c: 0x55b837e6b020: i32 = Constant<0>
try.c: 0x55b837e6b020: i32 = Constant<0>
try.c: 0x55b837e6b020: i32 = Constant<0>
try.c: 0x55b837e6b020: i32 = Constant<0>
try.c: 0x55b837e6b020: i32 = Constant<0>
try.c: 0x55b837e6b020: i32 = Constant<0>
try.c: 0x55b837e6b020: 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: 0x5631a5ab7460: v4i64 = X86ISD::VTRUNC 0x5631a5ab7330
try.c: 0x5631a5ab7330: v16i32 = vselect 0x5631a5ab1e30, 0x5631a5a4ad60, 0x5631a5ab7200
try.c: 0x5631a5ab1e30: v4i1 = X86ISD::PCMPGTM 0x5631a5aaee10, 0x5631a5aaa9a0
try.c: 0x5631a5aaee10: v4i64 = X86ISD::VBROADCAST 0x5631a5a4b220
try.c: 0x5631a5a4b220: i64,ch = load<LD8[%lsr.iv6971]> 0x5631a59a8a30, 0x5631a5a41d40, undef:i64
try.c: 0x5631a5a41d40: i64,ch = CopyFromReg 0x5631a59a8a30, Register:i64 %vreg50
try.c: 0x5631a5aaac00: i64 = Register %vreg50
try.c: 0x5631a5a4c4c0: i64 = undef
try.c: 0x5631a5aaa9a0: v4i64,ch = CopyFromReg 0x5631a59a8a30, Register:v4i64 %vreg13
try.c: 0x5631a5aaf660: v4i64 = Register %vreg13
try.c: 0x5631a5a4ad60: v16i32 = X86ISD::VBROADCAST 0x5631a5aaf070
try.c: 0x5631a5aaf070: i32,ch = load<LD4[ConstantPool]> 0x5631a59a8a30, 0x5631a5a50260, undef:i64
try.c: 0x5631a5a50260: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5631a5a4ce40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5631a5a4c4c0: i64 = undef
try.c: 0x5631a5ab7200: 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: 0x5631a5ab70d0: i32 = Constant<0>
try.c: 0x5631a5ab70d0: i32 = Constant<0>
try.c: 0x5631a5ab70d0: i32 = Constant<0>
try.c: 0x5631a5ab70d0: i32 = Constant<0>
try.c: 0x5631a5ab70d0: i32 = Constant<0>
try.c: 0x5631a5ab70d0: i32 = Constant<0>
try.c: 0x5631a5ab70d0: i32 = Constant<0>
try.c: 0x5631a5ab70d0: i32 = Constant<0>
try.c: 0x5631a5ab70d0: 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: 0x5575e71cb130: v4i64 = X86ISD::VTRUNC 0x5575e71cb000
try.c: 0x5575e71cb000: v16i32 = vselect 0x5575e71e7ca0, 0x5575e716a8b0, 0x5575e71caed0
try.c: 0x5575e71e7ca0: v4i1 = X86ISD::PCMPGTM 0x5575e71c5ef0, 0x5575e71c1a80
try.c: 0x5575e71c5ef0: v4i64 = X86ISD::VBROADCAST 0x5575e7166830
try.c: 0x5575e7166830: i64,ch = load<LD8[%lsr.iv6971]> 0x5575e70d6950, 0x5575e71b81f0, undef:i64
try.c: 0x5575e71b81f0: i64,ch = CopyFromReg 0x5575e70d6950, Register:i64 %vreg50
try.c: 0x5575e71c1ce0: i64 = Register %vreg50
try.c: 0x5575e7168f20: i64 = undef
try.c: 0x5575e71c1a80: v4i64,ch = CopyFromReg 0x5575e70d6950, Register:v4i64 %vreg13
try.c: 0x5575e71c6740: v4i64 = Register %vreg13
try.c: 0x5575e716a8b0: v16i32 = X86ISD::VBROADCAST 0x5575e71c6150
try.c: 0x5575e71c6150: i32,ch = load<LD4[ConstantPool]> 0x5575e70d6950, 0x5575e7165e10, undef:i64
try.c: 0x5575e7165e10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5575e71507a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5575e7168f20: i64 = undef
try.c: 0x5575e71caed0: 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: 0x5575e71cada0: i32 = Constant<0>
try.c: 0x5575e71cada0: i32 = Constant<0>
try.c: 0x5575e71cada0: i32 = Constant<0>
try.c: 0x5575e71cada0: i32 = Constant<0>
try.c: 0x5575e71cada0: i32 = Constant<0>
try.c: 0x5575e71cada0: i32 = Constant<0>
try.c: 0x5575e71cada0: i32 = Constant<0>
try.c: 0x5575e71cada0: i32 = Constant<0>
try.c: 0x5575e71cada0: 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:26:18: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i f0 = _mm256_loadu_si256((const __m256i *) (f+0));
encode.c: ^
encode.c: encode.c:27:18: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i f1 = _mm256_loadu_si256((const __m256i *) (f+32));
encode.c: ^
encode.c: encode.c:28:18: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i f2 = _mm256_loadu_si256((const __m256i *) (f+64));
encode.c: ^
encode.c: encode.c:29:18: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i f3 = _mm256_loadu_si256((const __m256i *) (f+96));
encode.c: ^
encode.c: encode.c:33:18: error: always_inline function '_mm256_packus_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a0 = _mm256_packus_epi16(f0&lobytes,f1&lobytes);
encode.c: ^
encode.c: encode.c:36:18: error: always_inline function '_mm256_packus_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8));
encode.c: ^
encode.c: encode.c:36:38: error: always_inline function '_mm256_srli_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8));
encode.c: ^
encode.c: encode.c:36:62: error: always_inline function '_mm256_srli_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_avx_constbranchindex' that is compiled without support for 'sse4.2'
encode.c: __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8));
encode.c: ^
encode.c: encode.c:38:18: error: always_inline function '_mm256_packus_epi16' requires target feature 'sse4.2', but would be inlined into function 'crypto_encode_653x3_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: 0x5615e9dca9b0: v4i64 = X86ISD::VTRUNC 0x5615e9dca880
try.c: 0x5615e9dca880: v16i32 = vselect 0x5615e9dd13f0, 0x5615e9d7f2f0, 0x5615e9dca750
try.c: 0x5615e9dd13f0: v4i1 = X86ISD::PCMPGTM 0x5615e9dc58f0, 0x5615e9dc1480
try.c: 0x5615e9dc58f0: v4i64 = X86ISD::VBROADCAST 0x5615e9d53110
try.c: 0x5615e9d53110: i64,ch = load<LD8[%lsr.iv6971]> 0x5615e9cd6940, 0x5615e9daf750, undef:i64
try.c: 0x5615e9daf750: i64,ch = CopyFromReg 0x5615e9cd6940, Register:i64 %vreg50
try.c: 0x5615e9dc16e0: i64 = Register %vreg50
try.c: 0x5615e9d545e0: i64 = undef
try.c: 0x5615e9dc1480: v4i64,ch = CopyFromReg 0x5615e9cd6940, Register:v4i64 %vreg13
try.c: 0x5615e9dc6140: v4i64 = Register %vreg13
try.c: 0x5615e9d7f2f0: v16i32 = X86ISD::VBROADCAST 0x5615e9dc5b50
try.c: 0x5615e9dc5b50: i32,ch = load<LD4[ConstantPool]> 0x5615e9cd6940, 0x5615e9d61b10, undef:i64
try.c: 0x5615e9d61b10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5615e9dab0b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5615e9d545e0: i64 = undef
try.c: 0x5615e9dca750: 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: 0x5615e9dca620: i32 = Constant<0>
try.c: 0x5615e9dca620: i32 = Constant<0>
try.c: 0x5615e9dca620: i32 = Constant<0>
try.c: 0x5615e9dca620: i32 = Constant<0>
try.c: 0x5615e9dca620: i32 = Constant<0>
try.c: 0x5615e9dca620: i32 = Constant<0>
try.c: 0x5615e9dca620: i32 = Constant<0>
try.c: 0x5615e9dca620: i32 = Constant<0>
try.c: 0x5615e9dca620: 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: 0x5621020c8a60: v4i64 = X86ISD::VTRUNC 0x5621020c8930
try.c: 0x5621020c8930: v16i32 = vselect 0x5621020b5ea0, 0x56210205a0d0, 0x5621020c8800
try.c: 0x5621020b5ea0: v4i1 = X86ISD::PCMPGTM 0x5621020b0280, 0x5621020acc60
try.c: 0x5621020b0280: v4i64 = X86ISD::VBROADCAST 0x56210205a590
try.c: 0x56210205a590: i64,ch = load<LD8[%lsr.iv6971]> 0x562101faaa30, 0x562102045c90, undef:i64
try.c: 0x562102045c90: i64,ch = CopyFromReg 0x562101faaa30, Register:i64 %vreg50
try.c: 0x5621020acec0: i64 = Register %vreg50
try.c: 0x562102051c10: i64 = undef
try.c: 0x5621020acc60: v4i64,ch = CopyFromReg 0x562101faaa30, Register:v4i64 %vreg13
try.c: 0x5621020b0ad0: v4i64 = Register %vreg13
try.c: 0x56210205a0d0: v16i32 = X86ISD::VBROADCAST 0x5621020b04e0
try.c: 0x5621020b04e0: i32,ch = load<LD4[ConstantPool]> 0x562101faaa30, 0x56210206b4e0, undef:i64
try.c: 0x56210206b4e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562102052590: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562102051c10: i64 = undef
try.c: 0x5621020c8800: 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: 0x5621020c86d0: i32 = Constant<0>
try.c: 0x5621020c86d0: i32 = Constant<0>
try.c: 0x5621020c86d0: i32 = Constant<0>
try.c: 0x5621020c86d0: i32 = Constant<0>
try.c: 0x5621020c86d0: i32 = Constant<0>
try.c: 0x5621020c86d0: i32 = Constant<0>
try.c: 0x5621020c86d0: i32 = Constant<0>
try.c: 0x5621020c86d0: i32 = Constant<0>
try.c: 0x5621020c86d0: 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: 0x55dfecb7e380: v4i64 = X86ISD::VTRUNC 0x55dfecb7e250
try.c: 0x55dfecb7e250: v16i32 = vselect 0x55dfecb895b0, 0x55dfecb0baa0, 0x55dfecb7e120
try.c: 0x55dfecb895b0: v4i1 = X86ISD::PCMPGTM 0x55dfecb66a20, 0x55dfecb625b0
try.c: 0x55dfecb66a20: v4i64 = X86ISD::VBROADCAST 0x55dfecb220e0
try.c: 0x55dfecb220e0: i64,ch = load<LD8[%lsr.iv6971]> 0x55dfeca77950, 0x55dfecb50d20, undef:i64
try.c: 0x55dfecb50d20: i64,ch = CopyFromReg 0x55dfeca77950, Register:i64 %vreg50
try.c: 0x55dfecb62810: i64 = Register %vreg50
try.c: 0x55dfecb0a110: i64 = undef
try.c: 0x55dfecb625b0: v4i64,ch = CopyFromReg 0x55dfeca77950, Register:v4i64 %vreg13
try.c: 0x55dfecb67270: v4i64 = Register %vreg13
try.c: 0x55dfecb0baa0: v16i32 = X86ISD::VBROADCAST 0x55dfecb66c80
try.c: 0x55dfecb66c80: i32,ch = load<LD4[ConstantPool]> 0x55dfeca77950, 0x55dfecb216c0, undef:i64
try.c: 0x55dfecb216c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55dfecb51f20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55dfecb0a110: i64 = undef
try.c: 0x55dfecb7e120: 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: 0x55dfecb7dff0: i32 = Constant<0>
try.c: 0x55dfecb7dff0: i32 = Constant<0>
try.c: 0x55dfecb7dff0: i32 = Constant<0>
try.c: 0x55dfecb7dff0: i32 = Constant<0>
try.c: 0x55dfecb7dff0: i32 = Constant<0>
try.c: 0x55dfecb7dff0: i32 = Constant<0>
try.c: 0x55dfecb7dff0: i32 = Constant<0>
try.c: 0x55dfecb7dff0: i32 = Constant<0>
try.c: 0x55dfecb7dff0: 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