Implementation notes: amd64, cel02, crypto_kem/rolloi192

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: rolloi192
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
164036623119 0 2451514 920 1640T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
232459220173 0 2447101 888 1576T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
236100430890 0 2462474 920 1672T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
243512633026 0 2864642 920 3744T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
257471621855 0 2449714 920 1640T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
263562019517 0 2846250 912 3680T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
275190219037 0 2445738 912 1608T:avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
358051829310 0 2858297 904 3664T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
403183623487 0 2851850 920 3712T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
404414622331 0 2850154 920 3712T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
492881620294 0 2847237 888 3632T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:avx
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: 0x5654b14f4ba0: v4i64 = X86ISD::VTRUNC 0x5654b14f4a70
try.c: 0x5654b14f4a70: v16i32 = vselect 0x5654b14e0e50, 0x5654b1482bf0, 0x5654b14f4940
try.c: 0x5654b14e0e50: v4i1 = X86ISD::PCMPGTM 0x5654b14da220, 0x5654b14d5db0
try.c: 0x5654b14da220: v4i64 = X86ISD::VBROADCAST 0x5654b147fd90
try.c: 0x5654b147fd90: i64,ch = load<LD8[%lsr.iv6971]> 0x5654b13ea950, 0x5654b14cc260, undef:i64
try.c: 0x5654b14cc260: i64,ch = CopyFromReg 0x5654b13ea950, Register:i64 %vreg50
try.c: 0x5654b14d6010: i64 = Register %vreg50
try.c: 0x5654b1481260: i64 = undef
try.c: 0x5654b14d5db0: v4i64,ch = CopyFromReg 0x5654b13ea950, Register:v4i64 %vreg13
try.c: 0x5654b14daa70: v4i64 = Register %vreg13
try.c: 0x5654b1482bf0: v16i32 = X86ISD::VBROADCAST 0x5654b14da480
try.c: 0x5654b14da480: i32,ch = load<LD4[ConstantPool]> 0x5654b13ea950, 0x5654b147e150, undef:i64
try.c: 0x5654b147e150: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5654b1484fe0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5654b1481260: i64 = undef
try.c: 0x5654b14f4940: 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: 0x5654b14f4810: i32 = Constant<0>
try.c: 0x5654b14f4810: i32 = Constant<0>
try.c: 0x5654b14f4810: i32 = Constant<0>
try.c: 0x5654b14f4810: i32 = Constant<0>
try.c: 0x5654b14f4810: i32 = Constant<0>
try.c: 0x5654b14f4810: i32 = Constant<0>
try.c: 0x5654b14f4810: i32 = Constant<0>
try.c: 0x5654b14f4810: i32 = Constant<0>
try.c: 0x5654b14f4810: 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:avx

Compiler output

Implementation: T:avx
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: 0x55b8e47860e0: v4i64 = X86ISD::VTRUNC 0x55b8e4785fb0
try.c: 0x55b8e4785fb0: v16i32 = vselect 0x55b8e4775720, 0x55b8e4712200, 0x55b8e4785e80
try.c: 0x55b8e4775720: v4i1 = X86ISD::PCMPGTM 0x55b8e47613d0, 0x55b8e475eef0
try.c: 0x55b8e47613d0: v4i64 = X86ISD::VBROADCAST 0x55b8e47126c0
try.c: 0x55b8e47126c0: i64,ch = load<LD8[%lsr.iv6971]> 0x55b8e465ba30, 0x55b8e46f7370, undef:i64
try.c: 0x55b8e46f7370: i64,ch = CopyFromReg 0x55b8e465ba30, Register:i64 %vreg50
try.c: 0x55b8e475f150: i64 = Register %vreg50
try.c: 0x55b8e470dbc0: i64 = undef
try.c: 0x55b8e475eef0: v4i64,ch = CopyFromReg 0x55b8e465ba30, Register:v4i64 %vreg13
try.c: 0x55b8e4761c20: v4i64 = Register %vreg13
try.c: 0x55b8e4712200: v16i32 = X86ISD::VBROADCAST 0x55b8e4761630
try.c: 0x55b8e4761630: i32,ch = load<LD4[ConstantPool]> 0x55b8e465ba30, 0x55b8e46f5940, undef:i64
try.c: 0x55b8e46f5940: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b8e470e540: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b8e470dbc0: i64 = undef
try.c: 0x55b8e4785e80: 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: 0x55b8e4785d50: i32 = Constant<0>
try.c: 0x55b8e4785d50: i32 = Constant<0>
try.c: 0x55b8e4785d50: i32 = Constant<0>
try.c: 0x55b8e4785d50: i32 = Constant<0>
try.c: 0x55b8e4785d50: i32 = Constant<0>
try.c: 0x55b8e4785d50: i32 = Constant<0>
try.c: 0x55b8e4785d50: i32 = Constant<0>
try.c: 0x55b8e4785d50: i32 = Constant<0>
try.c: 0x55b8e4785d50: 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:avx

Compiler output

Implementation: T:avx
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: 0x55a6f29fe7a0: v4i64 = X86ISD::VTRUNC 0x55a6f29fe670
try.c: 0x55a6f29fe670: v16i32 = vselect 0x55a6f2a13fe0, 0x55a6f29a2d80, 0x55a6f29fe540
try.c: 0x55a6f2a13fe0: v4i1 = X86ISD::PCMPGTM 0x55a6f29f6ad0, 0x55a6f29f2c60
try.c: 0x55a6f29f6ad0: v4i64 = X86ISD::VBROADCAST 0x55a6f299a0c0
try.c: 0x55a6f299a0c0: i64,ch = load<LD8[%lsr.iv6971]> 0x55a6f2907970, 0x55a6f29ed2b0, undef:i64
try.c: 0x55a6f29ed2b0: i64,ch = CopyFromReg 0x55a6f2907970, Register:i64 %vreg50
try.c: 0x55a6f29f2ec0: i64 = Register %vreg50
try.c: 0x55a6f299b590: i64 = undef
try.c: 0x55a6f29f2c60: v4i64,ch = CopyFromReg 0x55a6f2907970, Register:v4i64 %vreg13
try.c: 0x55a6f29f7320: v4i64 = Register %vreg13
try.c: 0x55a6f29a2d80: v16i32 = X86ISD::VBROADCAST 0x55a6f29f6d30
try.c: 0x55a6f29f6d30: i32,ch = load<LD4[ConstantPool]> 0x55a6f2907970, 0x55a6f29940f0, undef:i64
try.c: 0x55a6f29940f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a6f29ef740: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a6f299b590: i64 = undef
try.c: 0x55a6f29fe540: 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: 0x55a6f29fe410: i32 = Constant<0>
try.c: 0x55a6f29fe410: i32 = Constant<0>
try.c: 0x55a6f29fe410: i32 = Constant<0>
try.c: 0x55a6f29fe410: i32 = Constant<0>
try.c: 0x55a6f29fe410: i32 = Constant<0>
try.c: 0x55a6f29fe410: i32 = Constant<0>
try.c: 0x55a6f29fe410: i32 = Constant<0>
try.c: 0x55a6f29fe410: i32 = Constant<0>
try.c: 0x55a6f29fe410: 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:avx

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rbc_elt.c: rbc_elt.c:466:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a0_b0 = _mm_clmulepi64_si128(a, b, 0x00);
rbc_elt.c: ^
rbc_elt.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27:13: note: expanded from macro '_mm_clmulepi64_si128'
rbc_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
rbc_elt.c: ^
rbc_elt.c: rbc_elt.c:468:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a0_b1 = _mm_clmulepi64_si128(a, b, 0x10);
rbc_elt.c: ^
rbc_elt.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27:13: note: expanded from macro '_mm_clmulepi64_si128'
rbc_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
rbc_elt.c: ^
rbc_elt.c: rbc_elt.c:469:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a1_b0 = _mm_clmulepi64_si128(a, b, 0x01);
rbc_elt.c: ^
rbc_elt.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27:13: note: expanded from macro '_mm_clmulepi64_si128'
rbc_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
rbc_elt.c: ^
rbc_elt.c: rbc_elt.c:471:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a1_b1 = _mm_clmulepi64_si128(a, b, 0x11);
rbc_elt.c: ^
rbc_elt.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27:13: note: expanded from macro '_mm_clmulepi64_si128'
rbc_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
rbc_elt.c: ^
rbc_elt.c: 4 errors generated.

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

Compiler output

Implementation: T:ref
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: 0x5567f02cc420: v4i64 = X86ISD::VTRUNC 0x5567f02cc2f0
try.c: 0x5567f02cc2f0: v16i32 = vselect 0x5567f02c0060, 0x5567f026f5c0, 0x5567f02cc1c0
try.c: 0x5567f02c0060: v4i1 = X86ISD::PCMPGTM 0x5567f02b4ac0, 0x5567f02b0650
try.c: 0x5567f02b4ac0: v4i64 = X86ISD::VBROADCAST 0x5567f0257970
try.c: 0x5567f0257970: i64,ch = load<LD8[%lsr.iv6971]> 0x5567f01c5950, 0x5567f02ab4b0, undef:i64
try.c: 0x5567f02ab4b0: i64,ch = CopyFromReg 0x5567f01c5950, Register:i64 %vreg50
try.c: 0x5567f02b08b0: i64 = Register %vreg50
try.c: 0x5567f0258e40: i64 = undef
try.c: 0x5567f02b0650: v4i64,ch = CopyFromReg 0x5567f01c5950, Register:v4i64 %vreg13
try.c: 0x5567f02b5310: v4i64 = Register %vreg13
try.c: 0x5567f026f5c0: v16i32 = X86ISD::VBROADCAST 0x5567f02b4d20
try.c: 0x5567f02b4d20: i32,ch = load<LD4[ConstantPool]> 0x5567f01c5950, 0x5567f0256b40, undef:i64
try.c: 0x5567f0256b40: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5567f02770c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5567f0258e40: i64 = undef
try.c: 0x5567f02cc1c0: 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: 0x5567f02cc090: i32 = Constant<0>
try.c: 0x5567f02cc090: i32 = Constant<0>
try.c: 0x5567f02cc090: i32 = Constant<0>
try.c: 0x5567f02cc090: i32 = Constant<0>
try.c: 0x5567f02cc090: i32 = Constant<0>
try.c: 0x5567f02cc090: i32 = Constant<0>
try.c: 0x5567f02cc090: i32 = Constant<0>
try.c: 0x5567f02cc090: i32 = Constant<0>
try.c: 0x5567f02cc090: 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:ref

Compiler output

Implementation: T:ref
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: 0x561f56fc94b0: v4i64 = X86ISD::VTRUNC 0x561f56fc9380
try.c: 0x561f56fc9380: v16i32 = vselect 0x561f56fc3090, 0x561f56f3ffc0, 0x561f56fc9250
try.c: 0x561f56fc3090: v4i1 = X86ISD::PCMPGTM 0x561f56faaee0, 0x561f56fa6a70
try.c: 0x561f56faaee0: v4i64 = X86ISD::VBROADCAST 0x561f56f40480
try.c: 0x561f56f40480: i64,ch = load<LD8[%lsr.iv6971]> 0x561f56ea4a30, 0x561f56f563d0, undef:i64
try.c: 0x561f56f563d0: i64,ch = CopyFromReg 0x561f56ea4a30, Register:i64 %vreg50
try.c: 0x561f56fa6cd0: i64 = Register %vreg50
try.c: 0x561f56f43e70: i64 = undef
try.c: 0x561f56fa6a70: v4i64,ch = CopyFromReg 0x561f56ea4a30, Register:v4i64 %vreg13
try.c: 0x561f56fab730: v4i64 = Register %vreg13
try.c: 0x561f56f3ffc0: v16i32 = X86ISD::VBROADCAST 0x561f56fab140
try.c: 0x561f56fab140: i32,ch = load<LD4[ConstantPool]> 0x561f56ea4a30, 0x561f56f549a0, undef:i64
try.c: 0x561f56f549a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x561f56f447f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x561f56f43e70: i64 = undef
try.c: 0x561f56fc9250: 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: 0x561f56fc9120: i32 = Constant<0>
try.c: 0x561f56fc9120: i32 = Constant<0>
try.c: 0x561f56fc9120: i32 = Constant<0>
try.c: 0x561f56fc9120: i32 = Constant<0>
try.c: 0x561f56fc9120: i32 = Constant<0>
try.c: 0x561f56fc9120: i32 = Constant<0>
try.c: 0x561f56fc9120: i32 = Constant<0>
try.c: 0x561f56fc9120: i32 = Constant<0>
try.c: 0x561f56fc9120: 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:ref

Compiler output

Implementation: T:ref
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: 0x558d8a5c6150: v4i64 = X86ISD::VTRUNC 0x558d8a5c6020
try.c: 0x558d8a5c6020: v16i32 = vselect 0x558d8a5cccd0, 0x558d8a5503e0, 0x558d8a5c5ef0
try.c: 0x558d8a5cccd0: v4i1 = X86ISD::PCMPGTM 0x558d8a5ac990, 0x558d8a5a8520
try.c: 0x558d8a5ac990: v4i64 = X86ISD::VBROADCAST 0x558d8a5527d0
try.c: 0x558d8a5527d0: i64,ch = load<LD8[%lsr.iv6971]> 0x558d8a4bd930, 0x558d8a592ad0, undef:i64
try.c: 0x558d8a592ad0: i64,ch = CopyFromReg 0x558d8a4bd930, Register:i64 %vreg50
try.c: 0x558d8a5a8780: i64 = Register %vreg50
try.c: 0x558d8a553ca0: i64 = undef
try.c: 0x558d8a5a8520: v4i64,ch = CopyFromReg 0x558d8a4bd930, Register:v4i64 %vreg13
try.c: 0x558d8a5ad1e0: v4i64 = Register %vreg13
try.c: 0x558d8a5503e0: v16i32 = X86ISD::VBROADCAST 0x558d8a5acbf0
try.c: 0x558d8a5acbf0: i32,ch = load<LD4[ConstantPool]> 0x558d8a4bd930, 0x558d8a567940, undef:i64
try.c: 0x558d8a567940: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558d8a5728c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558d8a553ca0: i64 = undef
try.c: 0x558d8a5c5ef0: 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: 0x558d8a5c5dc0: i32 = Constant<0>
try.c: 0x558d8a5c5dc0: i32 = Constant<0>
try.c: 0x558d8a5c5dc0: i32 = Constant<0>
try.c: 0x558d8a5c5dc0: i32 = Constant<0>
try.c: 0x558d8a5c5dc0: i32 = Constant<0>
try.c: 0x558d8a5c5dc0: i32 = Constant<0>
try.c: 0x558d8a5c5dc0: i32 = Constant<0>
try.c: 0x558d8a5c5dc0: i32 = Constant<0>
try.c: 0x558d8a5c5dc0: 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:ref