Implementation notes: amd64, cel02, crypto_kem/rolloi128

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: rolloi128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
143170820167 0 2447093 888 1576T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
192854431719 0 2463338 920 1672T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
201789819072 0 2445770 912 1608T:avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
202594421856 0 2449698 920 1640T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
203713628584 0 2857577 904 3664T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
219172823012 0 2451370 920 1640T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
334916622332 0 2850138 920 3712T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
337339023372 0 2851698 920 3712T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
341048433879 0 2865530 920 3744T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
376104419552 0 2846282 912 3680T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
416773220290 0 2847229 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: 0x55ae20990a90: v4i64 = X86ISD::VTRUNC 0x55ae20990960
try.c: 0x55ae20990960: v16i32 = vselect 0x55ae2098d470, 0x55ae20934f10, 0x55ae20990830
try.c: 0x55ae2098d470: v4i1 = X86ISD::PCMPGTM 0x55ae209888f0, 0x55ae20984480
try.c: 0x55ae209888f0: v4i64 = X86ISD::VBROADCAST 0x55ae20930510
try.c: 0x55ae20930510: i64,ch = load<LD8[%lsr.iv6971]> 0x55ae20899930, 0x55ae2097f2e0, undef:i64
try.c: 0x55ae2097f2e0: i64,ch = CopyFromReg 0x55ae20899930, Register:i64 %vreg50
try.c: 0x55ae209846e0: i64 = Register %vreg50
try.c: 0x55ae209319e0: i64 = undef
try.c: 0x55ae20984480: v4i64,ch = CopyFromReg 0x55ae20899930, Register:v4i64 %vreg13
try.c: 0x55ae20989140: v4i64 = Register %vreg13
try.c: 0x55ae20934f10: v16i32 = X86ISD::VBROADCAST 0x55ae20988b50
try.c: 0x55ae20988b50: i32,ch = load<LD4[ConstantPool]> 0x55ae20899930, 0x55ae2092faf0, undef:i64
try.c: 0x55ae2092faf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ae20974360: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ae209319e0: i64 = undef
try.c: 0x55ae20990830: 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: 0x55ae20990700: i32 = Constant<0>
try.c: 0x55ae20990700: i32 = Constant<0>
try.c: 0x55ae20990700: i32 = Constant<0>
try.c: 0x55ae20990700: i32 = Constant<0>
try.c: 0x55ae20990700: i32 = Constant<0>
try.c: 0x55ae20990700: i32 = Constant<0>
try.c: 0x55ae20990700: i32 = Constant<0>
try.c: 0x55ae20990700: i32 = Constant<0>
try.c: 0x55ae20990700: 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: 0x55f92a946150: v4i64 = X86ISD::VTRUNC 0x55f92a946020
try.c: 0x55f92a946020: v16i32 = vselect 0x55f92a940b20, 0x55f92a8e91d0, 0x55f92a945ef0
try.c: 0x55f92a940b20: v4i1 = X86ISD::PCMPGTM 0x55f92a93ab20, 0x55f92a9368f0
try.c: 0x55f92a93ab20: v4i64 = X86ISD::VBROADCAST 0x55f92a8e9690
try.c: 0x55f92a8e9690: i64,ch = load<LD8[%lsr.iv6971]> 0x55f92a834a50, 0x55f92a8db600, undef:i64
try.c: 0x55f92a8db600: i64,ch = CopyFromReg 0x55f92a834a50, Register:i64 %vreg50
try.c: 0x55f92a936b50: i64 = Register %vreg50
try.c: 0x55f92a8d3650: i64 = undef
try.c: 0x55f92a9368f0: v4i64,ch = CopyFromReg 0x55f92a834a50, Register:v4i64 %vreg13
try.c: 0x55f92a93b370: v4i64 = Register %vreg13
try.c: 0x55f92a8e91d0: v16i32 = X86ISD::VBROADCAST 0x55f92a93ad80
try.c: 0x55f92a93ad80: i32,ch = load<LD4[ConstantPool]> 0x55f92a834a50, 0x55f92a8d0810, undef:i64
try.c: 0x55f92a8d0810: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55f92a8d3fd0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55f92a8d3650: i64 = undef
try.c: 0x55f92a945ef0: 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: 0x55f92a945dc0: i32 = Constant<0>
try.c: 0x55f92a945dc0: i32 = Constant<0>
try.c: 0x55f92a945dc0: i32 = Constant<0>
try.c: 0x55f92a945dc0: i32 = Constant<0>
try.c: 0x55f92a945dc0: i32 = Constant<0>
try.c: 0x55f92a945dc0: i32 = Constant<0>
try.c: 0x55f92a945dc0: i32 = Constant<0>
try.c: 0x55f92a945dc0: i32 = Constant<0>
try.c: 0x55f92a945dc0: 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: 0x561719f29f20: v4i64 = X86ISD::VTRUNC 0x561719f29df0
try.c: 0x561719f29df0: v16i32 = vselect 0x561719f26900, 0x561719eb47c0, 0x561719f29cc0
try.c: 0x561719f26900: v4i1 = X86ISD::PCMPGTM 0x561719f0f740, 0x561719f0b2d0
try.c: 0x561719f0f740: v4i64 = X86ISD::VBROADCAST 0x561719eb0940
try.c: 0x561719eb0940: i64,ch = load<LD8[%lsr.iv6971]> 0x561719e20920, 0x561719f06130, undef:i64
try.c: 0x561719f06130: i64,ch = CopyFromReg 0x561719e20920, Register:i64 %vreg50
try.c: 0x561719f0b530: i64 = Register %vreg50
try.c: 0x561719eb2e30: i64 = undef
try.c: 0x561719f0b2d0: v4i64,ch = CopyFromReg 0x561719e20920, Register:v4i64 %vreg13
try.c: 0x561719f0ff90: v4i64 = Register %vreg13
try.c: 0x561719eb47c0: v16i32 = X86ISD::VBROADCAST 0x561719f0f9a0
try.c: 0x561719f0f9a0: i32,ch = load<LD4[ConstantPool]> 0x561719e20920, 0x561719eaff20, undef:i64
try.c: 0x561719eaff20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x561719ed4440: i64 = TargetConstantPool<i32 1> 0
try.c: 0x561719eb2e30: i64 = undef
try.c: 0x561719f29cc0: 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: 0x561719f29b90: i32 = Constant<0>
try.c: 0x561719f29b90: i32 = Constant<0>
try.c: 0x561719f29b90: i32 = Constant<0>
try.c: 0x561719f29b90: i32 = Constant<0>
try.c: 0x561719f29b90: i32 = Constant<0>
try.c: 0x561719f29b90: i32 = Constant<0>
try.c: 0x561719f29b90: i32 = Constant<0>
try.c: 0x561719f29b90: i32 = Constant<0>
try.c: 0x561719f29b90: 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: 0x55ed97ed2530: v4i64 = X86ISD::VTRUNC 0x55ed97ed2400
try.c: 0x55ed97ed2400: v16i32 = vselect 0x55ed97ec1c80, 0x55ed97e81060, 0x55ed97ed22d0
try.c: 0x55ed97ec1c80: v4i1 = X86ISD::PCMPGTM 0x55ed97ec9850, 0x55ed97ec53e0
try.c: 0x55ed97ec9850: v4i64 = X86ISD::VBROADCAST 0x55ed97e7e200
try.c: 0x55ed97e7e200: i64,ch = load<LD8[%lsr.iv6971]> 0x55ed97dda930, 0x55ed97eb3ae0, undef:i64
try.c: 0x55ed97eb3ae0: i64,ch = CopyFromReg 0x55ed97dda930, Register:i64 %vreg50
try.c: 0x55ed97ec5640: i64 = Register %vreg50
try.c: 0x55ed97e7f6d0: i64 = undef
try.c: 0x55ed97ec53e0: v4i64,ch = CopyFromReg 0x55ed97dda930, Register:v4i64 %vreg13
try.c: 0x55ed97eca0a0: v4i64 = Register %vreg13
try.c: 0x55ed97e81060: v16i32 = X86ISD::VBROADCAST 0x55ed97ec9ab0
try.c: 0x55ed97ec9ab0: i32,ch = load<LD4[ConstantPool]> 0x55ed97dda930, 0x55ed97e72500, undef:i64
try.c: 0x55ed97e72500: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ed97eb4ce0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ed97e7f6d0: i64 = undef
try.c: 0x55ed97ed22d0: 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: 0x55ed97ed21a0: i32 = Constant<0>
try.c: 0x55ed97ed21a0: i32 = Constant<0>
try.c: 0x55ed97ed21a0: i32 = Constant<0>
try.c: 0x55ed97ed21a0: i32 = Constant<0>
try.c: 0x55ed97ed21a0: i32 = Constant<0>
try.c: 0x55ed97ed21a0: i32 = Constant<0>
try.c: 0x55ed97ed21a0: i32 = Constant<0>
try.c: 0x55ed97ed21a0: i32 = Constant<0>
try.c: 0x55ed97ed21a0: 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: 0x55e11c475c70: v4i64 = X86ISD::VTRUNC 0x55e11c475b40
try.c: 0x55e11c475b40: v16i32 = vselect 0x55e11c464df0, 0x55e11c3fb090, 0x55e11c475a10
try.c: 0x55e11c464df0: v4i1 = X86ISD::PCMPGTM 0x55e11c451260, 0x55e11c44de00
try.c: 0x55e11c451260: v4i64 = X86ISD::VBROADCAST 0x55e11c3fb550
try.c: 0x55e11c3fb550: i64,ch = load<LD8[%lsr.iv6971]> 0x55e11c34ba30, 0x55e11c3f1580, undef:i64
try.c: 0x55e11c3f1580: i64,ch = CopyFromReg 0x55e11c34ba30, Register:i64 %vreg50
try.c: 0x55e11c44e060: i64 = Register %vreg50
try.c: 0x55e11c3ee680: i64 = undef
try.c: 0x55e11c44de00: v4i64,ch = CopyFromReg 0x55e11c34ba30, Register:v4i64 %vreg13
try.c: 0x55e11c451ab0: v4i64 = Register %vreg13
try.c: 0x55e11c3fb090: v16i32 = X86ISD::VBROADCAST 0x55e11c4514c0
try.c: 0x55e11c4514c0: i32,ch = load<LD4[ConstantPool]> 0x55e11c34ba30, 0x55e11c3fda30, undef:i64
try.c: 0x55e11c3fda30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e11c3ef000: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e11c3ee680: i64 = undef
try.c: 0x55e11c475a10: 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: 0x55e11c4758e0: i32 = Constant<0>
try.c: 0x55e11c4758e0: i32 = Constant<0>
try.c: 0x55e11c4758e0: i32 = Constant<0>
try.c: 0x55e11c4758e0: i32 = Constant<0>
try.c: 0x55e11c4758e0: i32 = Constant<0>
try.c: 0x55e11c4758e0: i32 = Constant<0>
try.c: 0x55e11c4758e0: i32 = Constant<0>
try.c: 0x55e11c4758e0: i32 = Constant<0>
try.c: 0x55e11c4758e0: 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: 0x5565117b6b30: v4i64 = X86ISD::VTRUNC 0x5565117b6a00
try.c: 0x5565117b6a00: v16i32 = vselect 0x55651179c510, 0x5565117438e0, 0x5565117b68d0
try.c: 0x55651179c510: v4i1 = X86ISD::PCMPGTM 0x55651179b500, 0x556511797ee0
try.c: 0x55651179b500: v4i64 = X86ISD::VBROADCAST 0x55651173f9b0
try.c: 0x55651173f9b0: i64,ch = load<LD8[%lsr.iv6971]> 0x5565116ad970, 0x556511793540, undef:i64
try.c: 0x556511793540: i64,ch = CopyFromReg 0x5565116ad970, Register:i64 %vreg50
try.c: 0x556511798140: i64 = Register %vreg50
try.c: 0x556511740e80: i64 = undef
try.c: 0x556511797ee0: v4i64,ch = CopyFromReg 0x5565116ad970, Register:v4i64 %vreg13
try.c: 0x55651179bd50: v4i64 = Register %vreg13
try.c: 0x5565117438e0: v16i32 = X86ISD::VBROADCAST 0x55651179b760
try.c: 0x55651179b760: i32,ch = load<LD4[ConstantPool]> 0x5565116ad970, 0x556511747500, undef:i64
try.c: 0x556511747500: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55651172c8d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556511740e80: i64 = undef
try.c: 0x5565117b68d0: 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: 0x5565117b67a0: i32 = Constant<0>
try.c: 0x5565117b67a0: i32 = Constant<0>
try.c: 0x5565117b67a0: i32 = Constant<0>
try.c: 0x5565117b67a0: i32 = Constant<0>
try.c: 0x5565117b67a0: i32 = Constant<0>
try.c: 0x5565117b67a0: i32 = Constant<0>
try.c: 0x5565117b67a0: i32 = Constant<0>
try.c: 0x5565117b67a0: i32 = Constant<0>
try.c: 0x5565117b67a0: 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