Implementation notes: amd64, cel02, crypto_sign/luov8117404pc

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: luov8117404pc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
266149023281 32768 059976 33632 1632T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
318973429073 32768 069024 33632 1664T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
452094823574 32768 059920 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: 0x55aab47779b0: v4i64 = X86ISD::VTRUNC 0x55aab4777880
try.c: 0x55aab4777880: v16i32 = vselect 0x55aab47719a0, 0x55aab473bcf0, 0x55aab4777750
try.c: 0x55aab47719a0: v4i1 = X86ISD::PCMPGTM 0x55aab476e970, 0x55aab476a500
try.c: 0x55aab476e970: v4i64 = X86ISD::VBROADCAST 0x55aab47122f0
try.c: 0x55aab47122f0: i64,ch = load<LD8[%lsr.iv6971]> 0x55aab467f950, 0x55aab4758910, undef:i64
try.c: 0x55aab4758910: i64,ch = CopyFromReg 0x55aab467f950, Register:i64 %vreg50
try.c: 0x55aab476a760: i64 = Register %vreg50
try.c: 0x55aab473a360: i64 = undef
try.c: 0x55aab476a500: v4i64,ch = CopyFromReg 0x55aab467f950, Register:v4i64 %vreg13
try.c: 0x55aab476f1c0: v4i64 = Register %vreg13
try.c: 0x55aab473bcf0: v16i32 = X86ISD::VBROADCAST 0x55aab476ebd0
try.c: 0x55aab476ebd0: i32,ch = load<LD4[ConstantPool]> 0x55aab467f950, 0x55aab47118d0, undef:i64
try.c: 0x55aab47118d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55aab475e6f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55aab473a360: i64 = undef
try.c: 0x55aab4777750: 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: 0x55aab4777620: i32 = Constant<0>
try.c: 0x55aab4777620: i32 = Constant<0>
try.c: 0x55aab4777620: i32 = Constant<0>
try.c: 0x55aab4777620: i32 = Constant<0>
try.c: 0x55aab4777620: i32 = Constant<0>
try.c: 0x55aab4777620: i32 = Constant<0>
try.c: 0x55aab4777620: i32 = Constant<0>
try.c: 0x55aab4777620: i32 = Constant<0>
try.c: 0x55aab4777620: 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: 0x55a1dfa6c3c0: v4i64 = X86ISD::VTRUNC 0x55a1dfa6c290
try.c: 0x55a1dfa6c290: v16i32 = vselect 0x55a1dfa54010, 0x55a1df9e2070, 0x55a1dfa6c160
try.c: 0x55a1dfa54010: v4i1 = X86ISD::PCMPGTM 0x55a1dfa47680, 0x55a1dfa43c10
try.c: 0x55a1dfa47680: v4i64 = X86ISD::VBROADCAST 0x55a1df9e2530
try.c: 0x55a1df9e2530: i64,ch = load<LD8[%lsr.iv6971]> 0x55a1df941a30, 0x55a1df9fa990, undef:i64
try.c: 0x55a1df9fa990: i64,ch = CopyFromReg 0x55a1df941a30, Register:i64 %vreg50
try.c: 0x55a1dfa43e70: i64 = Register %vreg50
try.c: 0x55a1df9df0a0: i64 = undef
try.c: 0x55a1dfa43c10: v4i64,ch = CopyFromReg 0x55a1df941a30, Register:v4i64 %vreg13
try.c: 0x55a1dfa47ed0: v4i64 = Register %vreg13
try.c: 0x55a1df9e2070: v16i32 = X86ISD::VBROADCAST 0x55a1dfa478e0
try.c: 0x55a1dfa478e0: i32,ch = load<LD4[ConstantPool]> 0x55a1df941a30, 0x55a1df9e4a10, undef:i64
try.c: 0x55a1df9e4a10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a1df9dfa20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a1df9df0a0: i64 = undef
try.c: 0x55a1dfa6c160: 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: 0x55a1dfa6c030: i32 = Constant<0>
try.c: 0x55a1dfa6c030: i32 = Constant<0>
try.c: 0x55a1dfa6c030: i32 = Constant<0>
try.c: 0x55a1dfa6c030: i32 = Constant<0>
try.c: 0x55a1dfa6c030: i32 = Constant<0>
try.c: 0x55a1dfa6c030: i32 = Constant<0>
try.c: 0x55a1dfa6c030: i32 = Constant<0>
try.c: 0x55a1dfa6c030: i32 = Constant<0>
try.c: 0x55a1dfa6c030: 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: 0x55dbf780e710: v4i64 = X86ISD::VTRUNC 0x55dbf780e5e0
try.c: 0x55dbf780e5e0: v16i32 = vselect 0x55dbf78090e0, 0x55dbf77a5470, 0x55dbf780e4b0
try.c: 0x55dbf78090e0: v4i1 = X86ISD::PCMPGTM 0x55dbf78080d0, 0x55dbf7803c60
try.c: 0x55dbf78080d0: v4i64 = X86ISD::VBROADCAST 0x55dbf77b4040
try.c: 0x55dbf77b4040: i64,ch = load<LD8[%lsr.iv6971]> 0x55dbf7718930, 0x55dbf77fa680, undef:i64
try.c: 0x55dbf77fa680: i64,ch = CopyFromReg 0x55dbf7718930, Register:i64 %vreg50
try.c: 0x55dbf7803ec0: i64 = Register %vreg50
try.c: 0x55dbf77b5510: i64 = undef
try.c: 0x55dbf7803c60: v4i64,ch = CopyFromReg 0x55dbf7718930, Register:v4i64 %vreg13
try.c: 0x55dbf7808920: v4i64 = Register %vreg13
try.c: 0x55dbf77a5470: v16i32 = X86ISD::VBROADCAST 0x55dbf7808330
try.c: 0x55dbf7808330: i32,ch = load<LD4[ConstantPool]> 0x55dbf7718930, 0x55dbf77b3620, undef:i64
try.c: 0x55dbf77b3620: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55dbf7796cd0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55dbf77b5510: i64 = undef
try.c: 0x55dbf780e4b0: 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: 0x55dbf780e380: i32 = Constant<0>
try.c: 0x55dbf780e380: i32 = Constant<0>
try.c: 0x55dbf780e380: i32 = Constant<0>
try.c: 0x55dbf780e380: i32 = Constant<0>
try.c: 0x55dbf780e380: i32 = Constant<0>
try.c: 0x55dbf780e380: i32 = Constant<0>
try.c: 0x55dbf780e380: i32 = Constant<0>
try.c: 0x55dbf780e380: i32 = Constant<0>
try.c: 0x55dbf780e380: 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