Implementation notes: amd64, cel02, crypto_sign/luov890351pc

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: luov890351pc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
233045631167 32768 071152 33632 1664T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
325412823222 32768 059912 33632 1632T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
388093023424 32768 059744 33632 1632T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Test failure

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2

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: 0x56095520a3a0: v4i64 = X86ISD::VTRUNC 0x56095520a270
try.c: 0x56095520a270: v16i32 = vselect 0x5609552123e0, 0x5609551a6250, 0x56095520a140
try.c: 0x5609552123e0: v4i1 = X86ISD::PCMPGTM 0x5609551efa20, 0x5609551eb5b0
try.c: 0x5609551efa20: v4i64 = X86ISD::VBROADCAST 0x56095518f180
try.c: 0x56095518f180: i64,ch = load<LD8[%lsr.iv6971]> 0x560955100950, 0x5609551d3380, undef:i64
try.c: 0x5609551d3380: i64,ch = CopyFromReg 0x560955100950, Register:i64 %vreg50
try.c: 0x5609551eb810: i64 = Register %vreg50
try.c: 0x560955190650: i64 = undef
try.c: 0x5609551eb5b0: v4i64,ch = CopyFromReg 0x560955100950, Register:v4i64 %vreg13
try.c: 0x5609551f0270: v4i64 = Register %vreg13
try.c: 0x5609551a6250: v16i32 = X86ISD::VBROADCAST 0x5609551efc80
try.c: 0x5609551efc80: i32,ch = load<LD4[ConstantPool]> 0x560955100950, 0x56095518e760, undef:i64
try.c: 0x56095518e760: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5609551dc1e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560955190650: i64 = undef
try.c: 0x56095520a140: 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: 0x56095520a010: i32 = Constant<0>
try.c: 0x56095520a010: i32 = Constant<0>
try.c: 0x56095520a010: i32 = Constant<0>
try.c: 0x56095520a010: i32 = Constant<0>
try.c: 0x56095520a010: i32 = Constant<0>
try.c: 0x56095520a010: i32 = Constant<0>
try.c: 0x56095520a010: i32 = Constant<0>
try.c: 0x56095520a010: i32 = Constant<0>
try.c: 0x56095520a010: 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: 0x562c499e59c0: v4i64 = X86ISD::VTRUNC 0x562c499e5890
try.c: 0x562c499e5890: v16i32 = vselect 0x562c499eaf10, 0x562c49968500, 0x562c499e5760
try.c: 0x562c499eaf10: v4i1 = X86ISD::PCMPGTM 0x562c499ccc60, 0x562c499c87f0
try.c: 0x562c499ccc60: v4i64 = X86ISD::VBROADCAST 0x562c499689c0
try.c: 0x562c499689c0: i64,ch = load<LD8[%lsr.iv6971]> 0x562c498c6a20, 0x562c4997c3f0, undef:i64
try.c: 0x562c4997c3f0: i64,ch = CopyFromReg 0x562c498c6a20, Register:i64 %vreg50
try.c: 0x562c499c8a50: i64 = Register %vreg50
try.c: 0x562c49975960: i64 = undef
try.c: 0x562c499c87f0: v4i64,ch = CopyFromReg 0x562c498c6a20, Register:v4i64 %vreg13
try.c: 0x562c499cd4b0: v4i64 = Register %vreg13
try.c: 0x562c49968500: v16i32 = X86ISD::VBROADCAST 0x562c499ccec0
try.c: 0x562c499ccec0: i32,ch = load<LD4[ConstantPool]> 0x562c498c6a20, 0x562c4996aea0, undef:i64
try.c: 0x562c4996aea0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562c499762e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562c49975960: i64 = undef
try.c: 0x562c499e5760: 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: 0x562c499e5630: i32 = Constant<0>
try.c: 0x562c499e5630: i32 = Constant<0>
try.c: 0x562c499e5630: i32 = Constant<0>
try.c: 0x562c499e5630: i32 = Constant<0>
try.c: 0x562c499e5630: i32 = Constant<0>
try.c: 0x562c499e5630: i32 = Constant<0>
try.c: 0x562c499e5630: i32 = Constant<0>
try.c: 0x562c499e5630: i32 = Constant<0>
try.c: 0x562c499e5630: 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: 0x55a930aaa1b0: v4i64 = X86ISD::VTRUNC 0x55a930aaa080
try.c: 0x55a930aaa080: v16i32 = vselect 0x55a930aa6b90, 0x55a930a3b860, 0x55a930aa9f50
try.c: 0x55a930aa6b90: v4i1 = X86ISD::PCMPGTM 0x55a930a8f820, 0x55a930a8b3b0
try.c: 0x55a930a8f820: v4i64 = X86ISD::VBROADCAST 0x55a930a2fb50
try.c: 0x55a930a2fb50: i64,ch = load<LD8[%lsr.iv6971]> 0x55a9309a0930, 0x55a930a3e110, undef:i64
try.c: 0x55a930a3e110: i64,ch = CopyFromReg 0x55a9309a0930, Register:i64 %vreg50
try.c: 0x55a930a8b610: i64 = Register %vreg50
try.c: 0x55a930a31020: i64 = undef
try.c: 0x55a930a8b3b0: v4i64,ch = CopyFromReg 0x55a9309a0930, Register:v4i64 %vreg13
try.c: 0x55a930a90070: v4i64 = Register %vreg13
try.c: 0x55a930a3b860: v16i32 = X86ISD::VBROADCAST 0x55a930a8fa80
try.c: 0x55a930a8fa80: i32,ch = load<LD4[ConstantPool]> 0x55a9309a0930, 0x55a930a2f130, undef:i64
try.c: 0x55a930a2f130: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a930a7aa80: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a930a31020: i64 = undef
try.c: 0x55a930aa9f50: 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: 0x55a930aa9e20: i32 = Constant<0>
try.c: 0x55a930aa9e20: i32 = Constant<0>
try.c: 0x55a930aa9e20: i32 = Constant<0>
try.c: 0x55a930aa9e20: i32 = Constant<0>
try.c: 0x55a930aa9e20: i32 = Constant<0>
try.c: 0x55a930aa9e20: i32 = Constant<0>
try.c: 0x55a930aa9e20: i32 = Constant<0>
try.c: 0x55a930aa9e20: i32 = Constant<0>
try.c: 0x55a930aa9e20: 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:110:17: error: '__builtin_ia32_permti256' needs target feature avx2
LUOV.c: __m256i rr = _mm256_permute2x128_si256(_mm256_loadu_si256((__m256i *)&r),_mm256_setzero_si256(),0);
LUOV.c: ^
LUOV.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/avx2intrin.h:882:12: note: expanded from macro '_mm256_permute2x128_si256'
LUOV.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
LUOV.c: ^
LUOV.c: LUOV.c:110:43: 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 rr = _mm256_permute2x128_si256(_mm256_loadu_si256((__m256i *)&r),_mm256_setzero_si256(),0);
LUOV.c: ^
LUOV.c: LUOV.c:110:77: 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 rr = _mm256_permute2x128_si256(_mm256_loadu_si256((__m256i *)&r),_mm256_setzero_si256(),0);
LUOV.c: ^
LUOV.c: LUOV.c:115:20: error: always_inline function '_mm256_set1_epi8' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: __m256i tttt = _mm256_set1_epi8(t[k/8]);
LUOV.c: ^
LUOV.c: LUOV.c:117:20: error: always_inline function '_mm256_cmpeq_epi8' requires target feature 'sse4.2', but would be inlined into function 'calculateQ2' that is compiled without support for 'sse4.2'
LUOV.c: __m256i t1t2 = _mm256_cmpeq_epi8(tttt & masks[0],_mm256_setzero_si256());
LUOV.c: ^
LUOV.c: LUOV.c:117:54: 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 t1t2 = _mm256_cmpeq_epi8(tttt & masks[0],_mm256_setzero_si256());
LUOV.c: ^
LUOV.c: LUOV.c:118:39: error: always_inline function '_mm256_andnot_si256' 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+0]) ^= _mm256_andnot_si256(t1t2,rr);
LUOV.c: ^
LUOV.c: LUOV.c:120:20: error: always_inline function '_mm256_cmpeq_epi8' 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