Implementation notes: amd64, cel02, crypto_kem/rolloi256

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: rolloi256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
293031418985 0 2445690 912 1608T:avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
346517231090 0 2462682 920 1672T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
377696621935 0 2449794 920 1640T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
379940823175 0 2451578 920 1640T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
382376220164 0 2447101 888 1576T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
532651828361 0 2857369 904 3664T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
571690433474 0 2865082 920 3744T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
675944622383 0 2850218 920 3712T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
677635623527 0 2851890 920 3712T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
696207820230 0 2847189 888 3632T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
736897419413 0 2846154 912 3680T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-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: 0x556bcef2b220: v4i64 = X86ISD::VTRUNC 0x556bcef2b0f0
try.c: 0x556bcef2b0f0: v16i32 = vselect 0x556bcef27c00, 0x556bceec2d60, 0x556bcef2afc0
try.c: 0x556bcef27c00: v4i1 = X86ISD::PCMPGTM 0x556bcef22ff0, 0x556bcef1eb80
try.c: 0x556bcef22ff0: v4i64 = X86ISD::VBROADCAST 0x556bceecaa40
try.c: 0x556bceecaa40: i64,ch = load<LD8[%lsr.iv6971]> 0x556bcee33960, 0x556bcef095e0, undef:i64
try.c: 0x556bcef095e0: i64,ch = CopyFromReg 0x556bcee33960, Register:i64 %vreg50
try.c: 0x556bcef1ede0: i64 = Register %vreg50
try.c: 0x556bceec13d0: i64 = undef
try.c: 0x556bcef1eb80: v4i64,ch = CopyFromReg 0x556bcee33960, Register:v4i64 %vreg13
try.c: 0x556bcef23840: v4i64 = Register %vreg13
try.c: 0x556bceec2d60: v16i32 = X86ISD::VBROADCAST 0x556bcef23250
try.c: 0x556bcef23250: i32,ch = load<LD4[ConstantPool]> 0x556bcee33960, 0x556bceeca020, undef:i64
try.c: 0x556bceeca020: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556bceee6010: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556bceec13d0: i64 = undef
try.c: 0x556bcef2afc0: 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: 0x556bcef2ae90: i32 = Constant<0>
try.c: 0x556bcef2ae90: i32 = Constant<0>
try.c: 0x556bcef2ae90: i32 = Constant<0>
try.c: 0x556bcef2ae90: i32 = Constant<0>
try.c: 0x556bcef2ae90: i32 = Constant<0>
try.c: 0x556bcef2ae90: i32 = Constant<0>
try.c: 0x556bcef2ae90: i32 = Constant<0>
try.c: 0x556bcef2ae90: i32 = Constant<0>
try.c: 0x556bcef2ae90: 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: 0x557db03ce070: v4i64 = X86ISD::VTRUNC 0x557db03cdf40
try.c: 0x557db03cdf40: v16i32 = vselect 0x557db03caa50, 0x557db0349440, 0x557db03cde10
try.c: 0x557db03caa50: v4i1 = X86ISD::PCMPGTM 0x557db03b3870, 0x557db03af640
try.c: 0x557db03b3870: v4i64 = X86ISD::VBROADCAST 0x557db0349900
try.c: 0x557db0349900: i64,ch = load<LD8[%lsr.iv6971]> 0x557db02ada30, 0x557db035f940, undef:i64
try.c: 0x557db035f940: i64,ch = CopyFromReg 0x557db02ada30, Register:i64 %vreg50
try.c: 0x557db03af8a0: i64 = Register %vreg50
try.c: 0x557db034ef20: i64 = undef
try.c: 0x557db03af640: v4i64,ch = CopyFromReg 0x557db02ada30, Register:v4i64 %vreg13
try.c: 0x557db03b40c0: v4i64 = Register %vreg13
try.c: 0x557db0349440: v16i32 = X86ISD::VBROADCAST 0x557db03b3ad0
try.c: 0x557db03b3ad0: i32,ch = load<LD4[ConstantPool]> 0x557db02ada30, 0x557db035df10, undef:i64
try.c: 0x557db035df10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557db034f8a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557db034ef20: i64 = undef
try.c: 0x557db03cde10: 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: 0x557db03cdce0: i32 = Constant<0>
try.c: 0x557db03cdce0: i32 = Constant<0>
try.c: 0x557db03cdce0: i32 = Constant<0>
try.c: 0x557db03cdce0: i32 = Constant<0>
try.c: 0x557db03cdce0: i32 = Constant<0>
try.c: 0x557db03cdce0: i32 = Constant<0>
try.c: 0x557db03cdce0: i32 = Constant<0>
try.c: 0x557db03cdce0: i32 = Constant<0>
try.c: 0x557db03cdce0: 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: 0x55bc61a47d30: v4i64 = X86ISD::VTRUNC 0x55bc61a47c00
try.c: 0x55bc61a47c00: v16i32 = vselect 0x55bc61a5d290, 0x55bc619e9b50, 0x55bc61a47ad0
try.c: 0x55bc61a5d290: v4i1 = X86ISD::PCMPGTM 0x55bc61a42700, 0x55bc61a3e290
try.c: 0x55bc61a42700: v4i64 = X86ISD::VBROADCAST 0x55bc619fcfa0
try.c: 0x55bc619fcfa0: i64,ch = load<LD8[%lsr.iv6971]> 0x55bc61953920, 0x55bc61a2c6e0, undef:i64
try.c: 0x55bc61a2c6e0: i64,ch = CopyFromReg 0x55bc61953920, Register:i64 %vreg50
try.c: 0x55bc61a3e4f0: i64 = Register %vreg50
try.c: 0x55bc619fe470: i64 = undef
try.c: 0x55bc61a3e290: v4i64,ch = CopyFromReg 0x55bc61953920, Register:v4i64 %vreg13
try.c: 0x55bc61a42f50: v4i64 = Register %vreg13
try.c: 0x55bc619e9b50: v16i32 = X86ISD::VBROADCAST 0x55bc61a42960
try.c: 0x55bc61a42960: i32,ch = load<LD4[ConstantPool]> 0x55bc61953920, 0x55bc619fc580, undef:i64
try.c: 0x55bc619fc580: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55bc61a2d8e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55bc619fe470: i64 = undef
try.c: 0x55bc61a47ad0: 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: 0x55bc61a479a0: i32 = Constant<0>
try.c: 0x55bc61a479a0: i32 = Constant<0>
try.c: 0x55bc61a479a0: i32 = Constant<0>
try.c: 0x55bc61a479a0: i32 = Constant<0>
try.c: 0x55bc61a479a0: i32 = Constant<0>
try.c: 0x55bc61a479a0: i32 = Constant<0>
try.c: 0x55bc61a479a0: i32 = Constant<0>
try.c: 0x55bc61a479a0: i32 = Constant<0>
try.c: 0x55bc61a479a0: 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: 0x55ff68e41aa0: v4i64 = X86ISD::VTRUNC 0x55ff68e41970
try.c: 0x55ff68e41970: v16i32 = vselect 0x55ff68e33150, 0x55ff68dcee80, 0x55ff68e41840
try.c: 0x55ff68e33150: v4i1 = X86ISD::PCMPGTM 0x55ff68e27ca0, 0x55ff68e23830
try.c: 0x55ff68e27ca0: v4i64 = X86ISD::VBROADCAST 0x55ff68df4510
try.c: 0x55ff68df4510: i64,ch = load<LD8[%lsr.iv6971]> 0x55ff68d38950, 0x55ff68e17240, undef:i64
try.c: 0x55ff68e17240: i64,ch = CopyFromReg 0x55ff68d38950, Register:i64 %vreg50
try.c: 0x55ff68e23a90: i64 = Register %vreg50
try.c: 0x55ff68df59e0: i64 = undef
try.c: 0x55ff68e23830: v4i64,ch = CopyFromReg 0x55ff68d38950, Register:v4i64 %vreg13
try.c: 0x55ff68e284f0: v4i64 = Register %vreg13
try.c: 0x55ff68dcee80: v16i32 = X86ISD::VBROADCAST 0x55ff68e27f00
try.c: 0x55ff68e27f00: i32,ch = load<LD4[ConstantPool]> 0x55ff68d38950, 0x55ff68db6d70, undef:i64
try.c: 0x55ff68db6d70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ff68e1f7e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ff68df59e0: i64 = undef
try.c: 0x55ff68e41840: 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: 0x55ff68e41710: i32 = Constant<0>
try.c: 0x55ff68e41710: i32 = Constant<0>
try.c: 0x55ff68e41710: i32 = Constant<0>
try.c: 0x55ff68e41710: i32 = Constant<0>
try.c: 0x55ff68e41710: i32 = Constant<0>
try.c: 0x55ff68e41710: i32 = Constant<0>
try.c: 0x55ff68e41710: i32 = Constant<0>
try.c: 0x55ff68e41710: i32 = Constant<0>
try.c: 0x55ff68e41710: 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: 0x56050cf44660: v4i64 = X86ISD::VTRUNC 0x56050cf44530
try.c: 0x56050cf44530: v16i32 = vselect 0x56050cf5ce10, 0x56050ced7650, 0x56050cf44400
try.c: 0x56050cf5ce10: v4i1 = X86ISD::PCMPGTM 0x56050cf3b640, 0x56050cf38950
try.c: 0x56050cf3b640: v4i64 = X86ISD::VBROADCAST 0x56050ced7b10
try.c: 0x56050ced7b10: i64,ch = load<LD8[%lsr.iv6971]> 0x56050ce35a30, 0x56050ced07e0, undef:i64
try.c: 0x56050ced07e0: i64,ch = CopyFromReg 0x56050ce35a30, Register:i64 %vreg50
try.c: 0x56050cf38bb0: i64 = Register %vreg50
try.c: 0x56050ced4220: i64 = undef
try.c: 0x56050cf38950: v4i64,ch = CopyFromReg 0x56050ce35a30, Register:v4i64 %vreg13
try.c: 0x56050cf3be90: v4i64 = Register %vreg13
try.c: 0x56050ced7650: v16i32 = X86ISD::VBROADCAST 0x56050cf3b8a0
try.c: 0x56050cf3b8a0: i32,ch = load<LD4[ConstantPool]> 0x56050ce35a30, 0x56050cecedb0, undef:i64
try.c: 0x56050cecedb0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56050ced4ba0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56050ced4220: i64 = undef
try.c: 0x56050cf44400: 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: 0x56050cf442d0: i32 = Constant<0>
try.c: 0x56050cf442d0: i32 = Constant<0>
try.c: 0x56050cf442d0: i32 = Constant<0>
try.c: 0x56050cf442d0: i32 = Constant<0>
try.c: 0x56050cf442d0: i32 = Constant<0>
try.c: 0x56050cf442d0: i32 = Constant<0>
try.c: 0x56050cf442d0: i32 = Constant<0>
try.c: 0x56050cf442d0: i32 = Constant<0>
try.c: 0x56050cf442d0: 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: 0x55a634c15a80: v4i64 = X86ISD::VTRUNC 0x55a634c15950
try.c: 0x55a634c15950: v16i32 = vselect 0x55a634c25db0, 0x55a634bb63a0, 0x55a634c15820
try.c: 0x55a634c25db0: v4i1 = X86ISD::PCMPGTM 0x55a634c0ea40, 0x55a634c0a5d0
try.c: 0x55a634c0ea40: v4i64 = X86ISD::VBROADCAST 0x55a634bbc470
try.c: 0x55a634bbc470: i64,ch = load<LD8[%lsr.iv6971]> 0x55a634b1f920, 0x55a634c05430, undef:i64
try.c: 0x55a634c05430: i64,ch = CopyFromReg 0x55a634b1f920, Register:i64 %vreg50
try.c: 0x55a634c0a830: i64 = Register %vreg50
try.c: 0x55a634bbd940: i64 = undef
try.c: 0x55a634c0a5d0: v4i64,ch = CopyFromReg 0x55a634b1f920, Register:v4i64 %vreg13
try.c: 0x55a634c0f290: v4i64 = Register %vreg13
try.c: 0x55a634bb63a0: v16i32 = X86ISD::VBROADCAST 0x55a634c0eca0
try.c: 0x55a634c0eca0: i32,ch = load<LD4[ConstantPool]> 0x55a634b1f920, 0x55a634bbba50, undef:i64
try.c: 0x55a634bbba50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a634bb03c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a634bbd940: i64 = undef
try.c: 0x55a634c15820: 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: 0x55a634c156f0: i32 = Constant<0>
try.c: 0x55a634c156f0: i32 = Constant<0>
try.c: 0x55a634c156f0: i32 = Constant<0>
try.c: 0x55a634c156f0: i32 = Constant<0>
try.c: 0x55a634c156f0: i32 = Constant<0>
try.c: 0x55a634c156f0: i32 = Constant<0>
try.c: 0x55a634c156f0: i32 = Constant<0>
try.c: 0x55a634c156f0: i32 = Constant<0>
try.c: 0x55a634c156f0: 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