Implementation notes: amd64, cel02, crypto_core/invsntrup653

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_core
Primitive: invsntrup653
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5803181781 0 013884 816 800avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
8563121536 0 012404 792 760avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
8622285264 0 020613 824 864avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
9271481494 0 012332 808 800avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11423501714 0 013564 816 800avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
29641166458 0 021879 832 864refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
301773502971 0 015714 800 760refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
31211798912 0 011780 792 760refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
388667581129 0 013196 816 800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
40884252978 0 012788 816 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
490003861025 0 011804 808 800refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-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: 0x55f6e9e0e2e0: v4i64 = X86ISD::VTRUNC 0x55f6e9e0e1b0
try.c: 0x55f6e9e0e1b0: v16i32 = vselect 0x55f6e9e0acc0, 0x55f6e9d9b540, 0x55f6e9e0e080
try.c: 0x55f6e9e0acc0: v4i1 = X86ISD::PCMPGTM 0x55f6e9df3950, 0x55f6e9def4e0
try.c: 0x55f6e9df3950: v4i64 = X86ISD::VBROADCAST 0x55f6e9d94890
try.c: 0x55f6e9d94890: i64,ch = load<LD8[%lsr.iv6971]> 0x55f6e9d04980, 0x55f6e9ddd710, undef:i64
try.c: 0x55f6e9ddd710: i64,ch = CopyFromReg 0x55f6e9d04980, Register:i64 %vreg50
try.c: 0x55f6e9def740: i64 = Register %vreg50
try.c: 0x55f6e9d99bb0: i64 = undef
try.c: 0x55f6e9def4e0: v4i64,ch = CopyFromReg 0x55f6e9d04980, Register:v4i64 %vreg13
try.c: 0x55f6e9df41a0: v4i64 = Register %vreg13
try.c: 0x55f6e9d9b540: v16i32 = X86ISD::VBROADCAST 0x55f6e9df3bb0
try.c: 0x55f6e9df3bb0: i32,ch = load<LD4[ConstantPool]> 0x55f6e9d04980, 0x55f6e9d93e70, undef:i64
try.c: 0x55f6e9d93e70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55f6e9dde910: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55f6e9d99bb0: i64 = undef
try.c: 0x55f6e9e0e080: 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: 0x55f6e9e0df50: i32 = Constant<0>
try.c: 0x55f6e9e0df50: i32 = Constant<0>
try.c: 0x55f6e9e0df50: i32 = Constant<0>
try.c: 0x55f6e9e0df50: i32 = Constant<0>
try.c: 0x55f6e9e0df50: i32 = Constant<0>
try.c: 0x55f6e9e0df50: i32 = Constant<0>
try.c: 0x55f6e9e0df50: i32 = Constant<0>
try.c: 0x55f6e9e0df50: i32 = Constant<0>
try.c: 0x55f6e9e0df50: 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: 0x55731cdeb040: v4i64 = X86ISD::VTRUNC 0x55731cdeaf10
try.c: 0x55731cdeaf10: v16i32 = vselect 0x55731cdf0c70, 0x55731cd6c4c0, 0x55731cdeade0
try.c: 0x55731cdf0c70: v4i1 = X86ISD::PCMPGTM 0x55731cdd20a0, 0x55731cdce230
try.c: 0x55731cdd20a0: v4i64 = X86ISD::VBROADCAST 0x55731cd6c980
try.c: 0x55731cd6c980: i64,ch = load<LD8[%lsr.iv6971]> 0x55731cccba30, 0x55731cd814a0, undef:i64
try.c: 0x55731cd814a0: i64,ch = CopyFromReg 0x55731cccba30, Register:i64 %vreg50
try.c: 0x55731cdce490: i64 = Register %vreg50
try.c: 0x55731cd7bd50: i64 = undef
try.c: 0x55731cdce230: v4i64,ch = CopyFromReg 0x55731cccba30, Register:v4i64 %vreg13
try.c: 0x55731cdd28f0: v4i64 = Register %vreg13
try.c: 0x55731cd6c4c0: v16i32 = X86ISD::VBROADCAST 0x55731cdd2300
try.c: 0x55731cdd2300: i32,ch = load<LD4[ConstantPool]> 0x55731cccba30, 0x55731cd6ee60, undef:i64
try.c: 0x55731cd6ee60: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55731cd7c6d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55731cd7bd50: i64 = undef
try.c: 0x55731cdeade0: 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: 0x55731cdeacb0: i32 = Constant<0>
try.c: 0x55731cdeacb0: i32 = Constant<0>
try.c: 0x55731cdeacb0: i32 = Constant<0>
try.c: 0x55731cdeacb0: i32 = Constant<0>
try.c: 0x55731cdeacb0: i32 = Constant<0>
try.c: 0x55731cdeacb0: i32 = Constant<0>
try.c: 0x55731cdeacb0: i32 = Constant<0>
try.c: 0x55731cdeacb0: i32 = Constant<0>
try.c: 0x55731cdeacb0: 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: 0x555976e29b20: v4i64 = X86ISD::VTRUNC 0x555976e299f0
try.c: 0x555976e299f0: v16i32 = vselect 0x555976e26500, 0x555976defc40, 0x555976e298c0
try.c: 0x555976e26500: v4i1 = X86ISD::PCMPGTM 0x555976e218b0, 0x555976e1d440
try.c: 0x555976e218b0: v4i64 = X86ISD::VBROADCAST 0x555976dc7b60
try.c: 0x555976dc7b60: i64,ch = load<LD8[%lsr.iv6971]> 0x555976d329a0, 0x555976e0b620, undef:i64
try.c: 0x555976e0b620: i64,ch = CopyFromReg 0x555976d329a0, Register:i64 %vreg50
try.c: 0x555976e1d6a0: i64 = Register %vreg50
try.c: 0x555976dc9030: i64 = undef
try.c: 0x555976e1d440: v4i64,ch = CopyFromReg 0x555976d329a0, Register:v4i64 %vreg13
try.c: 0x555976e22100: v4i64 = Register %vreg13
try.c: 0x555976defc40: v16i32 = X86ISD::VBROADCAST 0x555976e21b10
try.c: 0x555976e21b10: i32,ch = load<LD4[ConstantPool]> 0x555976d329a0, 0x555976dc3e50, undef:i64
try.c: 0x555976dc3e50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555976e0c820: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555976dc9030: i64 = undef
try.c: 0x555976e298c0: 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: 0x555976e29790: i32 = Constant<0>
try.c: 0x555976e29790: i32 = Constant<0>
try.c: 0x555976e29790: i32 = Constant<0>
try.c: 0x555976e29790: i32 = Constant<0>
try.c: 0x555976e29790: i32 = Constant<0>
try.c: 0x555976e29790: i32 = Constant<0>
try.c: 0x555976e29790: i32 = Constant<0>
try.c: 0x555976e29790: i32 = Constant<0>
try.c: 0x555976e29790: 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
recip.c: recip.c:83:19: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i f0vec = _mm256_set1_epi16(f0);
recip.c: ^
recip.c: recip.c:84:19: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i g0vec = _mm256_set1_epi16(g0);
recip.c: ^
recip.c: recip.c:85:23: error: always_inline function '_mm256_mullo_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec);
recip.c: ^
recip.c: recip.c:85:48: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec);
recip.c: ^
recip.c: recip.c:69:17: note: expanded from macro 'qinvvec'
recip.c: #define qinvvec _mm256_set1_epi16(qinv)
recip.c: ^
recip.c: recip.c:86:23: error: always_inline function '_mm256_mullo_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i g0vecqinv = _mm256_mullo_epi16(g0vec,qinvvec);
recip.c: ^
recip.c: recip.c:86:48: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i g0vecqinv = _mm256_mullo_epi16(g0vec,qinvvec);
recip.c: ^
recip.c: recip.c:69:17: note: expanded from macro 'qinvvec'
recip.c: #define qinvvec _mm256_set1_epi16(qinv)
recip.c: ^
recip.c: recip.c:87:21: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.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: 0x558c2c3da7e0: v4i64 = X86ISD::VTRUNC 0x558c2c3da6b0
try.c: 0x558c2c3da6b0: v16i32 = vselect 0x558c2c3d51b0, 0x558c2c377c70, 0x558c2c3da580
try.c: 0x558c2c3d51b0: v4i1 = X86ISD::PCMPGTM 0x558c2c3d0980, 0x558c2c3cc510
try.c: 0x558c2c3d0980: v4i64 = X86ISD::VBROADCAST 0x558c2c38b6f0
try.c: 0x558c2c38b6f0: i64,ch = load<LD8[%lsr.iv6971]> 0x558c2c2e1950, 0x558c2c3bf9a0, undef:i64
try.c: 0x558c2c3bf9a0: i64,ch = CopyFromReg 0x558c2c2e1950, Register:i64 %vreg50
try.c: 0x558c2c3cc770: i64 = Register %vreg50
try.c: 0x558c2c38cbc0: i64 = undef
try.c: 0x558c2c3cc510: v4i64,ch = CopyFromReg 0x558c2c2e1950, Register:v4i64 %vreg13
try.c: 0x558c2c3d11d0: v4i64 = Register %vreg13
try.c: 0x558c2c377c70: v16i32 = X86ISD::VBROADCAST 0x558c2c3d0be0
try.c: 0x558c2c3d0be0: i32,ch = load<LD4[ConstantPool]> 0x558c2c2e1950, 0x558c2c38acd0, undef:i64
try.c: 0x558c2c38acd0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558c2c387970: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558c2c38cbc0: i64 = undef
try.c: 0x558c2c3da580: 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: 0x558c2c3da450: i32 = Constant<0>
try.c: 0x558c2c3da450: i32 = Constant<0>
try.c: 0x558c2c3da450: i32 = Constant<0>
try.c: 0x558c2c3da450: i32 = Constant<0>
try.c: 0x558c2c3da450: i32 = Constant<0>
try.c: 0x558c2c3da450: i32 = Constant<0>
try.c: 0x558c2c3da450: i32 = Constant<0>
try.c: 0x558c2c3da450: i32 = Constant<0>
try.c: 0x558c2c3da450: 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: 0x559d61586230: v4i64 = X86ISD::VTRUNC 0x559d61586100
try.c: 0x559d61586100: v16i32 = vselect 0x559d61580c00, 0x559d615035d0, 0x559d61585fd0
try.c: 0x559d61580c00: v4i1 = X86ISD::PCMPGTM 0x559d6156d070, 0x559d61569c10
try.c: 0x559d6156d070: v4i64 = X86ISD::VBROADCAST 0x559d61503a90
try.c: 0x559d61503a90: i64,ch = load<LD8[%lsr.iv6971]> 0x559d61467a30, 0x559d61519d20, undef:i64
try.c: 0x559d61519d20: i64,ch = CopyFromReg 0x559d61467a30, Register:i64 %vreg50
try.c: 0x559d61569e70: i64 = Register %vreg50
try.c: 0x559d61500ca0: i64 = undef
try.c: 0x559d61569c10: v4i64,ch = CopyFromReg 0x559d61467a30, Register:v4i64 %vreg13
try.c: 0x559d6156d8c0: v4i64 = Register %vreg13
try.c: 0x559d615035d0: v16i32 = X86ISD::VBROADCAST 0x559d6156d2d0
try.c: 0x559d6156d2d0: i32,ch = load<LD4[ConstantPool]> 0x559d61467a30, 0x559d61509c50, undef:i64
try.c: 0x559d61509c50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x559d61501620: i64 = TargetConstantPool<i32 1> 0
try.c: 0x559d61500ca0: i64 = undef
try.c: 0x559d61585fd0: 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: 0x559d61585ea0: i32 = Constant<0>
try.c: 0x559d61585ea0: i32 = Constant<0>
try.c: 0x559d61585ea0: i32 = Constant<0>
try.c: 0x559d61585ea0: i32 = Constant<0>
try.c: 0x559d61585ea0: i32 = Constant<0>
try.c: 0x559d61585ea0: i32 = Constant<0>
try.c: 0x559d61585ea0: i32 = Constant<0>
try.c: 0x559d61585ea0: i32 = Constant<0>
try.c: 0x559d61585ea0: 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: 0x564a98ed8280: v4i64 = X86ISD::VTRUNC 0x564a98ed8150
try.c: 0x564a98ed8150: v16i32 = vselect 0x564a98ec9520, 0x564a98e884a0, 0x564a98ed8020
try.c: 0x564a98ec9520: v4i1 = X86ISD::PCMPGTM 0x564a98ed1900, 0x564a98ecd490
try.c: 0x564a98ed1900: v4i64 = X86ISD::VBROADCAST 0x564a98e97570
try.c: 0x564a98e97570: i64,ch = load<LD8[%lsr.iv6971]> 0x564a98de2940, 0x564a98ebb840, undef:i64
try.c: 0x564a98ebb840: i64,ch = CopyFromReg 0x564a98de2940, Register:i64 %vreg50
try.c: 0x564a98ecd6f0: i64 = Register %vreg50
try.c: 0x564a98e98a40: i64 = undef
try.c: 0x564a98ecd490: v4i64,ch = CopyFromReg 0x564a98de2940, Register:v4i64 %vreg13
try.c: 0x564a98ed2150: v4i64 = Register %vreg13
try.c: 0x564a98e884a0: v16i32 = X86ISD::VBROADCAST 0x564a98ed1b60
try.c: 0x564a98ed1b60: i32,ch = load<LD4[ConstantPool]> 0x564a98de2940, 0x564a98e8de20, undef:i64
try.c: 0x564a98e8de20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564a98ebca40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564a98e98a40: i64 = undef
try.c: 0x564a98ed8020: 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: 0x564a98ed7ef0: i32 = Constant<0>
try.c: 0x564a98ed7ef0: i32 = Constant<0>
try.c: 0x564a98ed7ef0: i32 = Constant<0>
try.c: 0x564a98ed7ef0: i32 = Constant<0>
try.c: 0x564a98ed7ef0: i32 = Constant<0>
try.c: 0x564a98ed7ef0: i32 = Constant<0>
try.c: 0x564a98ed7ef0: i32 = Constant<0>
try.c: 0x564a98ed7ef0: i32 = Constant<0>
try.c: 0x564a98ed7ef0: 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