Implementation notes: amd64, cel02, crypto_sign/lattisigns512

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: lattisigns512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
79775651474 0 6892316 840 1760T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
84771835687 0 5671583 808 1664T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
86283237777 0 6875316 840 1728T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
91307436267 0 6872308 832 1696T:avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
93999437323 0 6874492 840 1728T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x561656f4aa30: v4i64 = X86ISD::VTRUNC 0x561656f4a900
try.c: 0x561656f4a900: v16i32 = vselect 0x561656f524b0, 0x561656ed7b10, 0x561656f4a7d0
try.c: 0x561656f524b0: v4i1 = X86ISD::PCMPGTM 0x561656f310c0, 0x561656f2cc50
try.c: 0x561656f310c0: v4i64 = X86ISD::VBROADCAST 0x561656ed3ae0
try.c: 0x561656ed3ae0: i64,ch = load<LD8[%lsr.iv6971]> 0x561656e41990, 0x561656f18bd0, undef:i64
try.c: 0x561656f18bd0: i64,ch = CopyFromReg 0x561656e41990, Register:i64 %vreg50
try.c: 0x561656f2ceb0: i64 = Register %vreg50
try.c: 0x561656ed4fb0: i64 = undef
try.c: 0x561656f2cc50: v4i64,ch = CopyFromReg 0x561656e41990, Register:v4i64 %vreg13
try.c: 0x561656f31910: v4i64 = Register %vreg13
try.c: 0x561656ed7b10: v16i32 = X86ISD::VBROADCAST 0x561656f31320
try.c: 0x561656f31320: i32,ch = load<LD4[ConstantPool]> 0x561656e41990, 0x561656ef7e70, undef:i64
try.c: 0x561656ef7e70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x561656efe310: i64 = TargetConstantPool<i32 1> 0
try.c: 0x561656ed4fb0: i64 = undef
try.c: 0x561656f4a7d0: 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: 0x561656f4a6a0: i32 = Constant<0>
try.c: 0x561656f4a6a0: i32 = Constant<0>
try.c: 0x561656f4a6a0: i32 = Constant<0>
try.c: 0x561656f4a6a0: i32 = Constant<0>
try.c: 0x561656f4a6a0: i32 = Constant<0>
try.c: 0x561656f4a6a0: i32 = Constant<0>
try.c: 0x561656f4a6a0: i32 = Constant<0>
try.c: 0x561656f4a6a0: i32 = Constant<0>
try.c: 0x561656f4a6a0: 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 T:avx

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x556546d7a260: v4i64 = X86ISD::VTRUNC 0x556546d7a130
try.c: 0x556546d7a130: v16i32 = vselect 0x556546d74c30, 0x556546d1e050, 0x556546d7a000
try.c: 0x556546d74c30: v4i1 = X86ISD::PCMPGTM 0x556546d6e090, 0x556546d69c20
try.c: 0x556546d6e090: v4i64 = X86ISD::VBROADCAST 0x556546d1e510
try.c: 0x556546d1e510: i64,ch = load<LD8[%lsr.iv6971]> 0x556546c67a30, 0x556546d08800, undef:i64
try.c: 0x556546d08800: i64,ch = CopyFromReg 0x556546c67a30, Register:i64 %vreg50
try.c: 0x556546d69e80: i64 = Register %vreg50
try.c: 0x556546cffc30: i64 = undef
try.c: 0x556546d69c20: v4i64,ch = CopyFromReg 0x556546c67a30, Register:v4i64 %vreg13
try.c: 0x556546d6e8e0: v4i64 = Register %vreg13
try.c: 0x556546d1e050: v16i32 = X86ISD::VBROADCAST 0x556546d6e2f0
try.c: 0x556546d6e2f0: i32,ch = load<LD4[ConstantPool]> 0x556546c67a30, 0x556546d02b70, undef:i64
try.c: 0x556546d02b70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556546d005b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556546cffc30: i64 = undef
try.c: 0x556546d7a000: 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: 0x556546d79ed0: i32 = Constant<0>
try.c: 0x556546d79ed0: i32 = Constant<0>
try.c: 0x556546d79ed0: i32 = Constant<0>
try.c: 0x556546d79ed0: i32 = Constant<0>
try.c: 0x556546d79ed0: i32 = Constant<0>
try.c: 0x556546d79ed0: i32 = Constant<0>
try.c: 0x556546d79ed0: i32 = Constant<0>
try.c: 0x556546d79ed0: i32 = Constant<0>
try.c: 0x556546d79ed0: 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 T:avx

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55d53bfd12d0: v4i64 = X86ISD::VTRUNC 0x55d53bfd11a0
try.c: 0x55d53bfd11a0: v16i32 = vselect 0x55d53bfafd90, 0x55d53bf5f6f0, 0x55d53bfd1070
try.c: 0x55d53bfafd90: v4i1 = X86ISD::PCMPGTM 0x55d53bfb7960, 0x55d53bfb34f0
try.c: 0x55d53bfb7960: v4i64 = X86ISD::VBROADCAST 0x55d53bf7ffe0
try.c: 0x55d53bf7ffe0: i64,ch = load<LD8[%lsr.iv6971]> 0x55d53bec8950, 0x55d53bfa1610, undef:i64
try.c: 0x55d53bfa1610: i64,ch = CopyFromReg 0x55d53bec8950, Register:i64 %vreg50
try.c: 0x55d53bfb3750: i64 = Register %vreg50
try.c: 0x55d53bf5dd60: i64 = undef
try.c: 0x55d53bfb34f0: v4i64,ch = CopyFromReg 0x55d53bec8950, Register:v4i64 %vreg13
try.c: 0x55d53bfb81b0: v4i64 = Register %vreg13
try.c: 0x55d53bf5f6f0: v16i32 = X86ISD::VBROADCAST 0x55d53bfb7bc0
try.c: 0x55d53bfb7bc0: i32,ch = load<LD4[ConstantPool]> 0x55d53bec8950, 0x55d53bf7f5c0, undef:i64
try.c: 0x55d53bf7f5c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d53bfa2810: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d53bf5dd60: i64 = undef
try.c: 0x55d53bfd1070: 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: 0x55d53bfd0f40: i32 = Constant<0>
try.c: 0x55d53bfd0f40: i32 = Constant<0>
try.c: 0x55d53bfd0f40: i32 = Constant<0>
try.c: 0x55d53bfd0f40: i32 = Constant<0>
try.c: 0x55d53bfd0f40: i32 = Constant<0>
try.c: 0x55d53bfd0f40: i32 = Constant<0>
try.c: 0x55d53bfd0f40: i32 = Constant<0>
try.c: 0x55d53bfd0f40: i32 = Constant<0>
try.c: 0x55d53bfd0f40: 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 T:avx

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
ntt_transform.c: ntt_transform.c:27:11: error: always_inline function '_mm256_set_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: vpinv = _mm256_set_pd(PARAM_APPROX_P_INVERSE, PARAM_APPROX_P_INVERSE, PARAM_APPROX_P_INVERSE, PARAM_APPROX_P_INVERSE);
ntt_transform.c: ^
ntt_transform.c: ntt_transform.c:28:11: error: always_inline function '_mm256_set_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: vp = _mm256_set_pd(8383489., 8383489., 8383489., 8383489.);
ntt_transform.c: ^
ntt_transform.c: ntt_transform.c:32:10: error: always_inline function '_mm256_load_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: vo10 = _mm256_load_pd(o+pos);
ntt_transform.c: ^
ntt_transform.c: ntt_transform.c:33:10: error: always_inline function '_mm256_load_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: vo20 = _mm256_load_pd(o+pos+4);
ntt_transform.c: ^
ntt_transform.c: ntt_transform.c:34:10: error: always_inline function '_mm256_load_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: neg2 = _mm256_load_pd(_neg2);
ntt_transform.c: ^
ntt_transform.c: ntt_transform.c:35:10: error: always_inline function '_mm256_load_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: neg4 = _mm256_load_pd(_neg4);
ntt_transform.c: ^
ntt_transform.c: ntt_transform.c:41:11: error: always_inline function '_mm256_load_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: vx0 = _mm256_load_pd(out+s);
ntt_transform.c: ^
ntt_transform.c: ntt_transform.c:42:10: error: always_inline function '_mm256_mul_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: vt = _mm256_mul_pd(vx0,neg2);
ntt_transform.c: ^
ntt_transform.c: ntt_transform.c:43:11: error: always_inline function '_mm256_hadd_pd' requires target feature 'sse4.2', but would be inlined into function 'ntt_transform' that is compiled without support for 'sse4.2'
ntt_transform.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx