Implementation notes: amd64, cel02, crypto_sign/luov863256pc

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: luov863256pc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
65023420315 32768 056704 33632 1632T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
74040250263 0 085467 824 1600T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
81583415333 32768 050696 33624 1600T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
87639431693 32768 071688 33632 1664T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
113234220513 32768 057256 33632 1632T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:avx2
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: 0x56304a0ae360: v4i64 = X86ISD::VTRUNC 0x56304a0ae230
try.c: 0x56304a0ae230: v16i32 = vselect 0x56304a0a24d0, 0x56304a051260, 0x56304a0ae100
try.c: 0x56304a0a24d0: v4i1 = X86ISD::PCMPGTM 0x56304a096a00, 0x56304a092590
try.c: 0x56304a096a00: v4i64 = X86ISD::VBROADCAST 0x56304a03ee90
try.c: 0x56304a03ee90: i64,ch = load<LD8[%lsr.iv6971]> 0x563049fa7950, 0x56304a089a20, undef:i64
try.c: 0x56304a089a20: i64,ch = CopyFromReg 0x563049fa7950, Register:i64 %vreg50
try.c: 0x56304a0927f0: i64 = Register %vreg50
try.c: 0x56304a04f8d0: i64 = undef
try.c: 0x56304a092590: v4i64,ch = CopyFromReg 0x563049fa7950, Register:v4i64 %vreg13
try.c: 0x56304a097250: v4i64 = Register %vreg13
try.c: 0x56304a051260: v16i32 = X86ISD::VBROADCAST 0x56304a096c60
try.c: 0x56304a096c60: i32,ch = load<LD4[ConstantPool]> 0x563049fa7950, 0x56304a03e470, undef:i64
try.c: 0x56304a03e470: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56304a05cf10: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56304a04f8d0: i64 = undef
try.c: 0x56304a0ae100: 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: 0x56304a0adfd0: i32 = Constant<0>
try.c: 0x56304a0adfd0: i32 = Constant<0>
try.c: 0x56304a0adfd0: i32 = Constant<0>
try.c: 0x56304a0adfd0: i32 = Constant<0>
try.c: 0x56304a0adfd0: i32 = Constant<0>
try.c: 0x56304a0adfd0: i32 = Constant<0>
try.c: 0x56304a0adfd0: i32 = Constant<0>
try.c: 0x56304a0adfd0: i32 = Constant<0>
try.c: 0x56304a0adfd0: 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:avx2

Compiler output

Implementation: T:avx2
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: 0x55768cd51e00: v4i64 = X86ISD::VTRUNC 0x55768cd51cd0
try.c: 0x55768cd51cd0: v16i32 = vselect 0x55768cd40860, 0x55768cce87a0, 0x55768cd51ba0
try.c: 0x55768cd40860: v4i1 = X86ISD::PCMPGTM 0x55768cd3a810, 0x55768cd363a0
try.c: 0x55768cd3a810: v4i64 = X86ISD::VBROADCAST 0x55768cce8c60
try.c: 0x55768cce8c60: i64,ch = load<LD8[%lsr.iv6971]> 0x55768cc33a30, 0x55768ccd6470, undef:i64
try.c: 0x55768ccd6470: i64,ch = CopyFromReg 0x55768cc33a30, Register:i64 %vreg50
try.c: 0x55768cd36600: i64 = Register %vreg50
try.c: 0x55768ccb1c50: i64 = undef
try.c: 0x55768cd363a0: v4i64,ch = CopyFromReg 0x55768cc33a30, Register:v4i64 %vreg13
try.c: 0x55768cd3b060: v4i64 = Register %vreg13
try.c: 0x55768cce87a0: v16i32 = X86ISD::VBROADCAST 0x55768cd3aa70
try.c: 0x55768cd3aa70: i32,ch = load<LD4[ConstantPool]> 0x55768cc33a30, 0x55768ccd4a40, undef:i64
try.c: 0x55768ccd4a40: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55768ccb25d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55768ccb1c50: i64 = undef
try.c: 0x55768cd51ba0: 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: 0x55768cd51a70: i32 = Constant<0>
try.c: 0x55768cd51a70: i32 = Constant<0>
try.c: 0x55768cd51a70: i32 = Constant<0>
try.c: 0x55768cd51a70: i32 = Constant<0>
try.c: 0x55768cd51a70: i32 = Constant<0>
try.c: 0x55768cd51a70: i32 = Constant<0>
try.c: 0x55768cd51a70: i32 = Constant<0>
try.c: 0x55768cd51a70: i32 = Constant<0>
try.c: 0x55768cd51a70: 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:avx2

Compiler output

Implementation: T:avx2
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: 0x558a92b335f0: v4i64 = X86ISD::VTRUNC 0x558a92b334c0
try.c: 0x558a92b334c0: v16i32 = vselect 0x558a92b2dfc0, 0x558a92ad9050, 0x558a92b33390
try.c: 0x558a92b2dfc0: v4i1 = X86ISD::PCMPGTM 0x558a92b2cfb0, 0x558a92b28b40
try.c: 0x558a92b2cfb0: v4i64 = X86ISD::VBROADCAST 0x558a92acbfd0
try.c: 0x558a92acbfd0: i64,ch = load<LD8[%lsr.iv6971]> 0x558a92a3d950, 0x558a92b206f0, undef:i64
try.c: 0x558a92b206f0: i64,ch = CopyFromReg 0x558a92a3d950, Register:i64 %vreg50
try.c: 0x558a92b28da0: i64 = Register %vreg50
try.c: 0x558a92ad76c0: i64 = undef
try.c: 0x558a92b28b40: v4i64,ch = CopyFromReg 0x558a92a3d950, Register:v4i64 %vreg13
try.c: 0x558a92b2d800: v4i64 = Register %vreg13
try.c: 0x558a92ad9050: v16i32 = X86ISD::VBROADCAST 0x558a92b2d210
try.c: 0x558a92b2d210: i32,ch = load<LD4[ConstantPool]> 0x558a92a3d950, 0x558a92acb5b0, undef:i64
try.c: 0x558a92acb5b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558a92a8dd90: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558a92ad76c0: i64 = undef
try.c: 0x558a92b33390: 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: 0x558a92b33260: i32 = Constant<0>
try.c: 0x558a92b33260: i32 = Constant<0>
try.c: 0x558a92b33260: i32 = Constant<0>
try.c: 0x558a92b33260: i32 = Constant<0>
try.c: 0x558a92b33260: i32 = Constant<0>
try.c: 0x558a92b33260: i32 = Constant<0>
try.c: 0x558a92b33260: i32 = Constant<0>
try.c: 0x558a92b33260: i32 = Constant<0>
try.c: 0x558a92b33260: 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:avx2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
LUOV.c: LUOV.c:38:44: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: __m256i rrrr = _mm256_permute4x64_epi64(_mm256_loadu_si256((__m256i *)&Q1[col++]),0);
LUOV.c: ^
LUOV.c: LUOV.c:38:19: error: always_inline function '_mm256_setzero_si256' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: __m256i rrrr = _mm256_permute4x64_epi64(_mm256_loadu_si256((__m256i *)&Q1[col++]),0);
LUOV.c: ^
LUOV.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/avx2intrin.h:877:44: note: expanded from macro '_mm256_permute4x64_epi64'
LUOV.c: (__v4di)_mm256_setzero_si256(), \
LUOV.c: ^
LUOV.c: LUOV.c:43:52: error: always_inline function '_mm256_blendv_pd' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: *((__m256i *)&TempMat[i][k*8+4]) ^= (__m256i) _mm256_blendv_pd(_mm256_setzero_pd(),(__m256d) rrrr,(__m256d)TJ);
LUOV.c: ^
LUOV.c: LUOV.c:43:69: error: always_inline function '_mm256_setzero_pd' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: *((__m256i *)&TempMat[i][k*8+4]) ^= (__m256i) _mm256_blendv_pd(_mm256_setzero_pd(),(__m256d) rrrr,(__m256d)TJ);
LUOV.c: ^
LUOV.c: LUOV.c:44:10: error: always_inline function '_mm256_slli_epi64' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: TJ = _mm256_slli_epi64(TJ,4);
LUOV.c: ^
LUOV.c: LUOV.c:46:49: error: always_inline function '_mm256_blendv_pd' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: *((__m256i *)&TempMat[i][k*8]) ^= (__m256i) _mm256_blendv_pd(_mm256_setzero_pd(),(__m256d) rrrr,(__m256d)TJ);
LUOV.c: ^
LUOV.c: LUOV.c:46:66: error: always_inline function '_mm256_setzero_pd' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: *((__m256i *)&TempMat[i][k*8]) ^= (__m256i) _mm256_blendv_pd(_mm256_setzero_pd(),(__m256d) rrrr,(__m256d)TJ);
LUOV.c: ^
LUOV.c: LUOV.c:47:10: error: always_inline function '_mm256_slli_epi64' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: ...

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