Implementation notes: amd64, cel02, crypto_core/inv3sntrup653

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_core
Primitive: inv3sntrup653
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1063168280 0 019116 792 760avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1489088254 0 020292 816 800avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
15917410987 0 026285 824 864avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2255827317 0 019108 816 800avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3684525128 0 015872 800 800avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
31495649774 0 025143 832 864refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
188099883738 0 016442 800 760refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
26179928699 0 011508 792 760refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
28905818738 0 011352 800 800refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
35972182842 0 012596 816 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
43406892902 0 012908 816 800refgcc_-march=native_-mtune=native_-O2_-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: 0x561e128daae0: v4i64 = X86ISD::VTRUNC 0x561e128da9b0
try.c: 0x561e128da9b0: v16i32 = vselect 0x561e128d74c0, 0x561e1287a610, 0x561e128da880
try.c: 0x561e128d74c0: v4i1 = X86ISD::PCMPGTM 0x561e128d2910, 0x561e128ce4a0
try.c: 0x561e128d2910: v4i64 = X86ISD::VBROADCAST 0x561e12862350
try.c: 0x561e12862350: i64,ch = load<LD8[%lsr.iv6971]> 0x561e127e3950, 0x561e128bdcd0, undef:i64
try.c: 0x561e128bdcd0: i64,ch = CopyFromReg 0x561e127e3950, Register:i64 %vreg50
try.c: 0x561e128ce700: i64 = Register %vreg50
try.c: 0x561e12878c80: i64 = undef
try.c: 0x561e128ce4a0: v4i64,ch = CopyFromReg 0x561e127e3950, Register:v4i64 %vreg13
try.c: 0x561e128d3160: v4i64 = Register %vreg13
try.c: 0x561e1287a610: v16i32 = X86ISD::VBROADCAST 0x561e128d2b70
try.c: 0x561e128d2b70: i32,ch = load<LD4[ConstantPool]> 0x561e127e3950, 0x561e12861930, undef:i64
try.c: 0x561e12861930: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x561e128b08a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x561e12878c80: i64 = undef
try.c: 0x561e128da880: 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: 0x561e128da750: i32 = Constant<0>
try.c: 0x561e128da750: i32 = Constant<0>
try.c: 0x561e128da750: i32 = Constant<0>
try.c: 0x561e128da750: i32 = Constant<0>
try.c: 0x561e128da750: i32 = Constant<0>
try.c: 0x561e128da750: i32 = Constant<0>
try.c: 0x561e128da750: i32 = Constant<0>
try.c: 0x561e128da750: i32 = Constant<0>
try.c: 0x561e128da750: 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: 0x5557bc11e650: v4i64 = X86ISD::VTRUNC 0x5557bc11e520
try.c: 0x5557bc11e520: v16i32 = vselect 0x5557bc119020, 0x5557bc09ce00, 0x5557bc11e3f0
try.c: 0x5557bc119020: v4i1 = X86ISD::PCMPGTM 0x5557bc1048e0, 0x5557bc100470
try.c: 0x5557bc1048e0: v4i64 = X86ISD::VBROADCAST 0x5557bc09d2c0
try.c: 0x5557bc09d2c0: i64,ch = load<LD8[%lsr.iv6971]> 0x5557bbffda30, 0x5557bc0adb60, undef:i64
try.c: 0x5557bc0adb60: i64,ch = CopyFromReg 0x5557bbffda30, Register:i64 %vreg50
try.c: 0x5557bc1006d0: i64 = Register %vreg50
try.c: 0x5557bc0980e0: i64 = undef
try.c: 0x5557bc100470: v4i64,ch = CopyFromReg 0x5557bbffda30, Register:v4i64 %vreg13
try.c: 0x5557bc105130: v4i64 = Register %vreg13
try.c: 0x5557bc09ce00: v16i32 = X86ISD::VBROADCAST 0x5557bc104b40
try.c: 0x5557bc104b40: i32,ch = load<LD4[ConstantPool]> 0x5557bbffda30, 0x5557bc0b3870, undef:i64
try.c: 0x5557bc0b3870: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5557bc098a60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5557bc0980e0: i64 = undef
try.c: 0x5557bc11e3f0: 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: 0x5557bc11e2c0: i32 = Constant<0>
try.c: 0x5557bc11e2c0: i32 = Constant<0>
try.c: 0x5557bc11e2c0: i32 = Constant<0>
try.c: 0x5557bc11e2c0: i32 = Constant<0>
try.c: 0x5557bc11e2c0: i32 = Constant<0>
try.c: 0x5557bc11e2c0: i32 = Constant<0>
try.c: 0x5557bc11e2c0: i32 = Constant<0>
try.c: 0x5557bc11e2c0: i32 = Constant<0>
try.c: 0x5557bc11e2c0: 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: 0x558f52f2f1e0: v4i64 = X86ISD::VTRUNC 0x558f52f2f0b0
try.c: 0x558f52f2f0b0: v16i32 = vselect 0x558f52f29bb0, 0x558f52ebf310, 0x558f52f2ef80
try.c: 0x558f52f29bb0: v4i1 = X86ISD::PCMPGTM 0x558f52f12840, 0x558f52f0e3d0
try.c: 0x558f52f12840: v4i64 = X86ISD::VBROADCAST 0x558f52eb1f20
try.c: 0x558f52eb1f20: i64,ch = load<LD8[%lsr.iv6971]> 0x558f52e23960, 0x558f52efbc70, undef:i64
try.c: 0x558f52efbc70: i64,ch = CopyFromReg 0x558f52e23960, Register:i64 %vreg50
try.c: 0x558f52f0e630: i64 = Register %vreg50
try.c: 0x558f52eb33f0: i64 = undef
try.c: 0x558f52f0e3d0: v4i64,ch = CopyFromReg 0x558f52e23960, Register:v4i64 %vreg13
try.c: 0x558f52f13090: v4i64 = Register %vreg13
try.c: 0x558f52ebf310: v16i32 = X86ISD::VBROADCAST 0x558f52f12aa0
try.c: 0x558f52f12aa0: i32,ch = load<LD4[ConstantPool]> 0x558f52e23960, 0x558f52eb7370, undef:i64
try.c: 0x558f52eb7370: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558f52efd720: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558f52eb33f0: i64 = undef
try.c: 0x558f52f2ef80: 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: 0x558f52f2ee50: i32 = Constant<0>
try.c: 0x558f52f2ee50: i32 = Constant<0>
try.c: 0x558f52f2ee50: i32 = Constant<0>
try.c: 0x558f52f2ee50: i32 = Constant<0>
try.c: 0x558f52f2ee50: i32 = Constant<0>
try.c: 0x558f52f2ee50: i32 = Constant<0>
try.c: 0x558f52f2ee50: i32 = Constant<0>
try.c: 0x558f52f2ee50: i32 = Constant<0>
try.c: 0x558f52f2ee50: 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
r3_recip.c: r3_recip.c:362:11: error: always_inline function '_mm256_set_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_recip.c: F0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1);
r3_recip.c: ^
r3_recip.c: r3_recip.c:363:11: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_recip.c: F0[1] = _mm256_set1_epi32(0);
r3_recip.c: ^
r3_recip.c: r3_recip.c:364:11: error: always_inline function '_mm256_set_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_recip.c: F0[2] = _mm256_set_epi32(0,0,0,0,8,0,8,0);
r3_recip.c: ^
r3_recip.c: r3_recip.c:365:11: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_recip.c: F1[0] = _mm256_set1_epi32(0);
r3_recip.c: ^
r3_recip.c: r3_recip.c:366:11: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_recip.c: F1[1] = _mm256_set1_epi32(0);
r3_recip.c: ^
r3_recip.c: r3_recip.c:367:11: error: always_inline function '_mm256_set_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_recip.c: F1[2] = _mm256_set_epi32(0,0,0,0,8,0,8,0);
r3_recip.c: ^
r3_recip.c: r3_recip.c:369:11: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_recip.c: V0[0] = _mm256_set1_epi32(0);
r3_recip.c: ^
r3_recip.c: r3_recip.c:370:11: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_recip.c: V1[0] = _mm256_set1_epi32(0);
r3_recip.c: ^
r3_recip.c: r3_recip.c:371:11: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_core_inv3sntrup653_avx_constbranchindex' that is compiled without support for 'sse4.2'
r3_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: 0x55cb241282e0: v4i64 = X86ISD::VTRUNC 0x55cb241281b0
try.c: 0x55cb241281b0: v16i32 = vselect 0x55cb241144f0, 0x55cb240ba740, 0x55cb24128080
try.c: 0x55cb241144f0: v4i1 = X86ISD::PCMPGTM 0x55cb2410d960, 0x55cb241094f0
try.c: 0x55cb2410d960: v4i64 = X86ISD::VBROADCAST 0x55cb240b3d00
try.c: 0x55cb240b3d00: i64,ch = load<LD8[%lsr.iv6971]> 0x55cb2401e940, 0x55cb240f7920, undef:i64
try.c: 0x55cb240f7920: i64,ch = CopyFromReg 0x55cb2401e940, Register:i64 %vreg50
try.c: 0x55cb24109750: i64 = Register %vreg50
try.c: 0x55cb240b51d0: i64 = undef
try.c: 0x55cb241094f0: v4i64,ch = CopyFromReg 0x55cb2401e940, Register:v4i64 %vreg13
try.c: 0x55cb2410e1b0: v4i64 = Register %vreg13
try.c: 0x55cb240ba740: v16i32 = X86ISD::VBROADCAST 0x55cb2410dbc0
try.c: 0x55cb2410dbc0: i32,ch = load<LD4[ConstantPool]> 0x55cb2401e940, 0x55cb240afaa0, undef:i64
try.c: 0x55cb240afaa0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cb240f8b20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cb240b51d0: i64 = undef
try.c: 0x55cb24128080: 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: 0x55cb24127f50: i32 = Constant<0>
try.c: 0x55cb24127f50: i32 = Constant<0>
try.c: 0x55cb24127f50: i32 = Constant<0>
try.c: 0x55cb24127f50: i32 = Constant<0>
try.c: 0x55cb24127f50: i32 = Constant<0>
try.c: 0x55cb24127f50: i32 = Constant<0>
try.c: 0x55cb24127f50: i32 = Constant<0>
try.c: 0x55cb24127f50: i32 = Constant<0>
try.c: 0x55cb24127f50: 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: 0x5648b5a6a550: v4i64 = X86ISD::VTRUNC 0x5648b5a6a420
try.c: 0x5648b5a6a420: v16i32 = vselect 0x5648b5a45650, 0x5648b59e6fb0, 0x5648b5a6a2f0
try.c: 0x5648b5a45650: v4i1 = X86ISD::PCMPGTM 0x5648b5a52760, 0x5648b5a4e2f0
try.c: 0x5648b5a52760: v4i64 = X86ISD::VBROADCAST 0x5648b59e7470
try.c: 0x5648b59e7470: i64,ch = load<LD8[%lsr.iv6971]> 0x5648b594ca30, 0x5648b59f49e0, undef:i64
try.c: 0x5648b59f49e0: i64,ch = CopyFromReg 0x5648b594ca30, Register:i64 %vreg50
try.c: 0x5648b5a4e550: i64 = Register %vreg50
try.c: 0x5648b59edfb0: i64 = undef
try.c: 0x5648b5a4e2f0: v4i64,ch = CopyFromReg 0x5648b594ca30, Register:v4i64 %vreg13
try.c: 0x5648b5a52fb0: v4i64 = Register %vreg13
try.c: 0x5648b59e6fb0: v16i32 = X86ISD::VBROADCAST 0x5648b5a529c0
try.c: 0x5648b5a529c0: i32,ch = load<LD4[ConstantPool]> 0x5648b594ca30, 0x5648b59e9950, undef:i64
try.c: 0x5648b59e9950: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5648b59ee930: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5648b59edfb0: i64 = undef
try.c: 0x5648b5a6a2f0: 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: 0x5648b5a6a1c0: i32 = Constant<0>
try.c: 0x5648b5a6a1c0: i32 = Constant<0>
try.c: 0x5648b5a6a1c0: i32 = Constant<0>
try.c: 0x5648b5a6a1c0: i32 = Constant<0>
try.c: 0x5648b5a6a1c0: i32 = Constant<0>
try.c: 0x5648b5a6a1c0: i32 = Constant<0>
try.c: 0x5648b5a6a1c0: i32 = Constant<0>
try.c: 0x5648b5a6a1c0: i32 = Constant<0>
try.c: 0x5648b5a6a1c0: 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: 0x55a86baa0910: v4i64 = X86ISD::VTRUNC 0x55a86baa07e0
try.c: 0x55a86baa07e0: v16i32 = vselect 0x55a86bab0a70, 0x55a86ba3c340, 0x55a86baa06b0
try.c: 0x55a86bab0a70: v4i1 = X86ISD::PCMPGTM 0x55a86ba99700, 0x55a86ba95290
try.c: 0x55a86ba99700: v4i64 = X86ISD::VBROADCAST 0x55a86ba40dd0
try.c: 0x55a86ba40dd0: i64,ch = load<LD8[%lsr.iv6971]> 0x55a86b9aa940, 0x55a86ba8c7e0, undef:i64
try.c: 0x55a86ba8c7e0: i64,ch = CopyFromReg 0x55a86b9aa940, Register:i64 %vreg50
try.c: 0x55a86ba954f0: i64 = Register %vreg50
try.c: 0x55a86ba422a0: i64 = undef
try.c: 0x55a86ba95290: v4i64,ch = CopyFromReg 0x55a86b9aa940, Register:v4i64 %vreg13
try.c: 0x55a86ba99f50: v4i64 = Register %vreg13
try.c: 0x55a86ba3c340: v16i32 = X86ISD::VBROADCAST 0x55a86ba99960
try.c: 0x55a86ba99960: i32,ch = load<LD4[ConstantPool]> 0x55a86b9aa940, 0x55a86ba60d10, undef:i64
try.c: 0x55a86ba60d10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a86ba831d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a86ba422a0: i64 = undef
try.c: 0x55a86baa06b0: 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: 0x55a86baa0580: i32 = Constant<0>
try.c: 0x55a86baa0580: i32 = Constant<0>
try.c: 0x55a86baa0580: i32 = Constant<0>
try.c: 0x55a86baa0580: i32 = Constant<0>
try.c: 0x55a86baa0580: i32 = Constant<0>
try.c: 0x55a86baa0580: i32 = Constant<0>
try.c: 0x55a86baa0580: i32 = Constant<0>
try.c: 0x55a86baa0580: i32 = Constant<0>
try.c: 0x55a86baa0580: 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