Implementation notes: amd64, cel02, crypto_kem/rolloii256

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: rolloii256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
322255033184 0 2490186 920 1672T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
391472620042 0 2472058 912 1608T:avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
483328224872 0 2478626 920 1640T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
500728621572 0 2473821 888 1576T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
511729223714 0 2476938 920 1640T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1057949629973 0 2884273 904 3664T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1273961435568 0 2892586 920 3744T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1558720625224 0 2878938 920 3712T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1615535424162 0 2877346 920 3712T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1682603420470 0 2872522 912 3680T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1731766021638 0 2873893 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: 0x556bb4e6b3a0: v4i64 = X86ISD::VTRUNC 0x556bb4e6b270
try.c: 0x556bb4e6b270: v16i32 = vselect 0x556bb4e72cc0, 0x556bb4df5940, 0x556bb4e6b140
try.c: 0x556bb4e72cc0: v4i1 = X86ISD::PCMPGTM 0x556bb4e51a30, 0x556bb4e4d5c0
try.c: 0x556bb4e51a30: v4i64 = X86ISD::VBROADCAST 0x556bb4df1ac0
try.c: 0x556bb4df1ac0: i64,ch = load<LD8[%lsr.iv6971]> 0x556bb4d62960, 0x556bb4e3dae0, undef:i64
try.c: 0x556bb4e3dae0: i64,ch = CopyFromReg 0x556bb4d62960, Register:i64 %vreg50
try.c: 0x556bb4e4d820: i64 = Register %vreg50
try.c: 0x556bb4df2f90: i64 = undef
try.c: 0x556bb4e4d5c0: v4i64,ch = CopyFromReg 0x556bb4d62960, Register:v4i64 %vreg13
try.c: 0x556bb4e52280: v4i64 = Register %vreg13
try.c: 0x556bb4df5940: v16i32 = X86ISD::VBROADCAST 0x556bb4e51c90
try.c: 0x556bb4e51c90: i32,ch = load<LD4[ConstantPool]> 0x556bb4d62960, 0x556bb4e18d10, undef:i64
try.c: 0x556bb4e18d10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556bb4df9ba0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556bb4df2f90: i64 = undef
try.c: 0x556bb4e6b140: 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: 0x556bb4e6b010: i32 = Constant<0>
try.c: 0x556bb4e6b010: i32 = Constant<0>
try.c: 0x556bb4e6b010: i32 = Constant<0>
try.c: 0x556bb4e6b010: i32 = Constant<0>
try.c: 0x556bb4e6b010: i32 = Constant<0>
try.c: 0x556bb4e6b010: i32 = Constant<0>
try.c: 0x556bb4e6b010: i32 = Constant<0>
try.c: 0x556bb4e6b010: i32 = Constant<0>
try.c: 0x556bb4e6b010: 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: 0x556101745370: v4i64 = X86ISD::VTRUNC 0x556101745240
try.c: 0x556101745240: v16i32 = vselect 0x55610173fd40, 0x5561016c4df0, 0x556101745110
try.c: 0x55610173fd40: v4i1 = X86ISD::PCMPGTM 0x55610172cfb0, 0x556101729b50
try.c: 0x55610172cfb0: v4i64 = X86ISD::VBROADCAST 0x5561016c52b0
try.c: 0x5561016c52b0: i64,ch = load<LD8[%lsr.iv6971]> 0x556101627a30, 0x5561016c9380, undef:i64
try.c: 0x5561016c9380: i64,ch = CopyFromReg 0x556101627a30, Register:i64 %vreg50
try.c: 0x556101729db0: i64 = Register %vreg50
try.c: 0x5561016d6520: i64 = undef
try.c: 0x556101729b50: v4i64,ch = CopyFromReg 0x556101627a30, Register:v4i64 %vreg13
try.c: 0x55610172d800: v4i64 = Register %vreg13
try.c: 0x5561016c4df0: v16i32 = X86ISD::VBROADCAST 0x55610172d210
try.c: 0x55610172d210: i32,ch = load<LD4[ConstantPool]> 0x556101627a30, 0x5561016c7790, undef:i64
try.c: 0x5561016c7790: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5561016d6ea0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5561016d6520: i64 = undef
try.c: 0x556101745110: 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: 0x556101744fe0: i32 = Constant<0>
try.c: 0x556101744fe0: i32 = Constant<0>
try.c: 0x556101744fe0: i32 = Constant<0>
try.c: 0x556101744fe0: i32 = Constant<0>
try.c: 0x556101744fe0: i32 = Constant<0>
try.c: 0x556101744fe0: i32 = Constant<0>
try.c: 0x556101744fe0: i32 = Constant<0>
try.c: 0x556101744fe0: i32 = Constant<0>
try.c: 0x556101744fe0: 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: 0x55a7649bb340: v4i64 = X86ISD::VTRUNC 0x55a7649bb210
try.c: 0x55a7649bb210: v16i32 = vselect 0x55a76498fd10, 0x55a764949a50, 0x55a7649bb0e0
try.c: 0x55a76498fd10: v4i1 = X86ISD::PCMPGTM 0x55a7649a09c0, 0x55a76499c550
try.c: 0x55a7649a09c0: v4i64 = X86ISD::VBROADCAST 0x55a764946bf0
try.c: 0x55a764946bf0: i64,ch = load<LD8[%lsr.iv6971]> 0x55a7648b1940, 0x55a7649973b0, undef:i64
try.c: 0x55a7649973b0: i64,ch = CopyFromReg 0x55a7648b1940, Register:i64 %vreg50
try.c: 0x55a76499c7b0: i64 = Register %vreg50
try.c: 0x55a7649480c0: i64 = undef
try.c: 0x55a76499c550: v4i64,ch = CopyFromReg 0x55a7648b1940, Register:v4i64 %vreg13
try.c: 0x55a7649a1210: v4i64 = Register %vreg13
try.c: 0x55a764949a50: v16i32 = X86ISD::VBROADCAST 0x55a7649a0c20
try.c: 0x55a7649a0c20: i32,ch = load<LD4[ConstantPool]> 0x55a7648b1940, 0x55a76493f010, undef:i64
try.c: 0x55a76493f010: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a76490dd60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a7649480c0: i64 = undef
try.c: 0x55a7649bb0e0: 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: 0x55a7649bafb0: i32 = Constant<0>
try.c: 0x55a7649bafb0: i32 = Constant<0>
try.c: 0x55a7649bafb0: i32 = Constant<0>
try.c: 0x55a7649bafb0: i32 = Constant<0>
try.c: 0x55a7649bafb0: i32 = Constant<0>
try.c: 0x55a7649bafb0: i32 = Constant<0>
try.c: 0x55a7649bafb0: i32 = Constant<0>
try.c: 0x55a7649bafb0: i32 = Constant<0>
try.c: 0x55a7649bafb0: 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:467: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:469: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:470: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:472: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: 0x55eacaef38e0: v4i64 = X86ISD::VTRUNC 0x55eacaef37b0
try.c: 0x55eacaef37b0: v16i32 = vselect 0x55eacaf061a0, 0x55eacae77570, 0x55eacaef3680
try.c: 0x55eacaf061a0: v4i1 = X86ISD::PCMPGTM 0x55eacaeec800, 0x55eacaee8390
try.c: 0x55eacaeec800: v4i64 = X86ISD::VBROADCAST 0x55eacae95330
try.c: 0x55eacae95330: i64,ch = load<LD8[%lsr.iv6971]> 0x55eacadfd930, 0x55eacaedfb00, undef:i64
try.c: 0x55eacaedfb00: i64,ch = CopyFromReg 0x55eacadfd930, Register:i64 %vreg50
try.c: 0x55eacaee85f0: i64 = Register %vreg50
try.c: 0x55eacae75be0: i64 = undef
try.c: 0x55eacaee8390: v4i64,ch = CopyFromReg 0x55eacadfd930, Register:v4i64 %vreg13
try.c: 0x55eacaeed050: v4i64 = Register %vreg13
try.c: 0x55eacae77570: v16i32 = X86ISD::VBROADCAST 0x55eacaeeca60
try.c: 0x55eacaeeca60: i32,ch = load<LD4[ConstantPool]> 0x55eacadfd930, 0x55eacae94910, undef:i64
try.c: 0x55eacae94910: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55eacaeaeb00: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55eacae75be0: i64 = undef
try.c: 0x55eacaef3680: 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: 0x55eacaef3550: i32 = Constant<0>
try.c: 0x55eacaef3550: i32 = Constant<0>
try.c: 0x55eacaef3550: i32 = Constant<0>
try.c: 0x55eacaef3550: i32 = Constant<0>
try.c: 0x55eacaef3550: i32 = Constant<0>
try.c: 0x55eacaef3550: i32 = Constant<0>
try.c: 0x55eacaef3550: i32 = Constant<0>
try.c: 0x55eacaef3550: i32 = Constant<0>
try.c: 0x55eacaef3550: 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: 0x5574039c1f70: v4i64 = X86ISD::VTRUNC 0x5574039c1e40
try.c: 0x5574039c1e40: v16i32 = vselect 0x5574039bc940, 0x5574039571a0, 0x5574039c1d10
try.c: 0x5574039bc940: v4i1 = X86ISD::PCMPGTM 0x5574039b5790, 0x5574039b1560
try.c: 0x5574039b5790: v4i64 = X86ISD::VBROADCAST 0x557403957660
try.c: 0x557403957660: i64,ch = load<LD8[%lsr.iv6971]> 0x5574038afa30, 0x557403976b50, undef:i64
try.c: 0x557403976b50: i64,ch = CopyFromReg 0x5574038afa30, Register:i64 %vreg50
try.c: 0x5574039b17c0: i64 = Register %vreg50
try.c: 0x557403973720: i64 = undef
try.c: 0x5574039b1560: v4i64,ch = CopyFromReg 0x5574038afa30, Register:v4i64 %vreg13
try.c: 0x5574039b5fe0: v4i64 = Register %vreg13
try.c: 0x5574039571a0: v16i32 = X86ISD::VBROADCAST 0x5574039b59f0
try.c: 0x5574039b59f0: i32,ch = load<LD4[ConstantPool]> 0x5574038afa30, 0x557403975120, undef:i64
try.c: 0x557403975120: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5574039740a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557403973720: i64 = undef
try.c: 0x5574039c1d10: 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: 0x5574039c1be0: i32 = Constant<0>
try.c: 0x5574039c1be0: i32 = Constant<0>
try.c: 0x5574039c1be0: i32 = Constant<0>
try.c: 0x5574039c1be0: i32 = Constant<0>
try.c: 0x5574039c1be0: i32 = Constant<0>
try.c: 0x5574039c1be0: i32 = Constant<0>
try.c: 0x5574039c1be0: i32 = Constant<0>
try.c: 0x5574039c1be0: i32 = Constant<0>
try.c: 0x5574039c1be0: 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: 0x55a6064ea320: v4i64 = X86ISD::VTRUNC 0x55a6064ea1f0
try.c: 0x55a6064ea1f0: v16i32 = vselect 0x55a6064de4c0, 0x55a606476a20, 0x55a6064ea0c0
try.c: 0x55a6064de4c0: v4i1 = X86ISD::PCMPGTM 0x55a6064d29c0, 0x55a6064ce550
try.c: 0x55a6064d29c0: v4i64 = X86ISD::VBROADCAST 0x55a606478dc0
try.c: 0x55a606478dc0: i64,ch = load<LD8[%lsr.iv6971]> 0x55a6063e3950, 0x55a6064c93b0, undef:i64
try.c: 0x55a6064c93b0: i64,ch = CopyFromReg 0x55a6063e3950, Register:i64 %vreg50
try.c: 0x55a6064ce7b0: i64 = Register %vreg50
try.c: 0x55a60647a290: i64 = undef
try.c: 0x55a6064ce550: v4i64,ch = CopyFromReg 0x55a6063e3950, Register:v4i64 %vreg13
try.c: 0x55a6064d3210: v4i64 = Register %vreg13
try.c: 0x55a606476a20: v16i32 = X86ISD::VBROADCAST 0x55a6064d2c20
try.c: 0x55a6064d2c20: i32,ch = load<LD4[ConstantPool]> 0x55a6063e3950, 0x55a60648f0e0, undef:i64
try.c: 0x55a60648f0e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a606470930: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a60647a290: i64 = undef
try.c: 0x55a6064ea0c0: 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: 0x55a6064e9f90: i32 = Constant<0>
try.c: 0x55a6064e9f90: i32 = Constant<0>
try.c: 0x55a6064e9f90: i32 = Constant<0>
try.c: 0x55a6064e9f90: i32 = Constant<0>
try.c: 0x55a6064e9f90: i32 = Constant<0>
try.c: 0x55a6064e9f90: i32 = Constant<0>
try.c: 0x55a6064e9f90: i32 = Constant<0>
try.c: 0x55a6064e9f90: i32 = Constant<0>
try.c: 0x55a6064e9f90: 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