Implementation notes: amd64, cel02, crypto_kem/rolloii128

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: rolloii128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
259803424808 0 2478530 920 1640T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
375449821896 0 2474125 888 1576T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
392714633320 0 2490298 920 1672T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
397605223820 0 2477002 920 1640T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
460719620156 0 2472170 912 1608T:avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
504041830333 0 2884633 904 3664T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
789712621923 0 2874165 888 3632T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
921601035496 0 2892506 920 3744T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
992618025168 0 2878858 920 3712T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1100644820636 0 2872682 912 3680T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1134001624296 0 2877458 920 3712T:refgcc_-march=native_-mtune=native_-O_-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: 0x56147d07dba0: v4i64 = X86ISD::VTRUNC 0x56147d07da70
try.c: 0x56147d07da70: v16i32 = vselect 0x56147d06ea40, 0x56147d003980, 0x56147d07d940
try.c: 0x56147d06ea40: v4i1 = X86ISD::PCMPGTM 0x56147d063da0, 0x56147d05f930
try.c: 0x56147d063da0: v4i64 = X86ISD::VBROADCAST 0x56147d006790
try.c: 0x56147d006790: i64,ch = load<LD8[%lsr.iv6971]> 0x56147cf74950, 0x56147d04ab10, undef:i64
try.c: 0x56147d04ab10: i64,ch = CopyFromReg 0x56147cf74950, Register:i64 %vreg50
try.c: 0x56147d05fb90: i64 = Register %vreg50
try.c: 0x56147d007c60: i64 = undef
try.c: 0x56147d05f930: v4i64,ch = CopyFromReg 0x56147cf74950, Register:v4i64 %vreg13
try.c: 0x56147d0645f0: v4i64 = Register %vreg13
try.c: 0x56147d003980: v16i32 = X86ISD::VBROADCAST 0x56147d064000
try.c: 0x56147d064000: i32,ch = load<LD4[ConstantPool]> 0x56147cf74950, 0x56147d02ab20, undef:i64
try.c: 0x56147d02ab20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56147d05b8e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56147d007c60: i64 = undef
try.c: 0x56147d07d940: 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: 0x56147d07d810: i32 = Constant<0>
try.c: 0x56147d07d810: i32 = Constant<0>
try.c: 0x56147d07d810: i32 = Constant<0>
try.c: 0x56147d07d810: i32 = Constant<0>
try.c: 0x56147d07d810: i32 = Constant<0>
try.c: 0x56147d07d810: i32 = Constant<0>
try.c: 0x56147d07d810: i32 = Constant<0>
try.c: 0x56147d07d810: i32 = Constant<0>
try.c: 0x56147d07d810: 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: 0x55dbdb1877f0: v4i64 = X86ISD::VTRUNC 0x55dbdb1876c0
try.c: 0x55dbdb1876c0: v16i32 = vselect 0x55dbdb165920, 0x55dbdb0fd260, 0x55dbdb187590
try.c: 0x55dbdb165920: v4i1 = X86ISD::PCMPGTM 0x55dbdb1618f0, 0x55dbdb15d480
try.c: 0x55dbdb1618f0: v4i64 = X86ISD::VBROADCAST 0x55dbdb0fd720
try.c: 0x55dbdb0fd720: i64,ch = load<LD8[%lsr.iv6971]> 0x55dbdb05ba30, 0x55dbdb11ef00, undef:i64
try.c: 0x55dbdb11ef00: i64,ch = CopyFromReg 0x55dbdb05ba30, Register:i64 %vreg50
try.c: 0x55dbdb15d6e0: i64 = Register %vreg50
try.c: 0x55dbdb0f9280: i64 = undef
try.c: 0x55dbdb15d480: v4i64,ch = CopyFromReg 0x55dbdb05ba30, Register:v4i64 %vreg13
try.c: 0x55dbdb162140: v4i64 = Register %vreg13
try.c: 0x55dbdb0fd260: v16i32 = X86ISD::VBROADCAST 0x55dbdb161b50
try.c: 0x55dbdb161b50: i32,ch = load<LD4[ConstantPool]> 0x55dbdb05ba30, 0x55dbdb10b910, undef:i64
try.c: 0x55dbdb10b910: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55dbdb0f9c00: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55dbdb0f9280: i64 = undef
try.c: 0x55dbdb187590: 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: 0x55dbdb187460: i32 = Constant<0>
try.c: 0x55dbdb187460: i32 = Constant<0>
try.c: 0x55dbdb187460: i32 = Constant<0>
try.c: 0x55dbdb187460: i32 = Constant<0>
try.c: 0x55dbdb187460: i32 = Constant<0>
try.c: 0x55dbdb187460: i32 = Constant<0>
try.c: 0x55dbdb187460: i32 = Constant<0>
try.c: 0x55dbdb187460: i32 = Constant<0>
try.c: 0x55dbdb187460: 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: 0x5618ba2c11a0: v4i64 = X86ISD::VTRUNC 0x5618ba2c1070
try.c: 0x5618ba2c1070: v16i32 = vselect 0x5618ba2c8c50, 0x5618ba262350, 0x5618ba2c0f40
try.c: 0x5618ba2c8c50: v4i1 = X86ISD::PCMPGTM 0x5618ba2a6820, 0x5618ba2a23b0
try.c: 0x5618ba2a6820: v4i64 = X86ISD::VBROADCAST 0x5618ba246aa0
try.c: 0x5618ba246aa0: i64,ch = load<LD8[%lsr.iv6971]> 0x5618ba1b7950, 0x5618ba292150, undef:i64
try.c: 0x5618ba292150: i64,ch = CopyFromReg 0x5618ba1b7950, Register:i64 %vreg50
try.c: 0x5618ba2a2610: i64 = Register %vreg50
try.c: 0x5618ba2609c0: i64 = undef
try.c: 0x5618ba2a23b0: v4i64,ch = CopyFromReg 0x5618ba1b7950, Register:v4i64 %vreg13
try.c: 0x5618ba2a7070: v4i64 = Register %vreg13
try.c: 0x5618ba262350: v16i32 = X86ISD::VBROADCAST 0x5618ba2a6a80
try.c: 0x5618ba2a6a80: i32,ch = load<LD4[ConstantPool]> 0x5618ba1b7950, 0x5618ba246080, undef:i64
try.c: 0x5618ba246080: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5618ba229780: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5618ba2609c0: i64 = undef
try.c: 0x5618ba2c0f40: 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: 0x5618ba2c0e10: i32 = Constant<0>
try.c: 0x5618ba2c0e10: i32 = Constant<0>
try.c: 0x5618ba2c0e10: i32 = Constant<0>
try.c: 0x5618ba2c0e10: i32 = Constant<0>
try.c: 0x5618ba2c0e10: i32 = Constant<0>
try.c: 0x5618ba2c0e10: i32 = Constant<0>
try.c: 0x5618ba2c0e10: i32 = Constant<0>
try.c: 0x5618ba2c0e10: i32 = Constant<0>
try.c: 0x5618ba2c0e10: 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: 0x5632363bcc50: v4i64 = X86ISD::VTRUNC 0x5632363bcb20
try.c: 0x5632363bcb20: v16i32 = vselect 0x5632363c1210, 0x563236371380, 0x5632363bc9f0
try.c: 0x5632363c1210: v4i1 = X86ISD::PCMPGTM 0x5632363b5ad0, 0x5632363b1660
try.c: 0x5632363b5ad0: v4i64 = X86ISD::VBROADCAST 0x5632363568e0
try.c: 0x5632363568e0: i64,ch = load<LD8[%lsr.iv6971]> 0x5632362c6960, 0x5632363ac4c0, undef:i64
try.c: 0x5632363ac4c0: i64,ch = CopyFromReg 0x5632362c6960, Register:i64 %vreg50
try.c: 0x5632363b18c0: i64 = Register %vreg50
try.c: 0x56323636f9f0: i64 = undef
try.c: 0x5632363b1660: v4i64,ch = CopyFromReg 0x5632362c6960, Register:v4i64 %vreg13
try.c: 0x5632363b6320: v4i64 = Register %vreg13
try.c: 0x563236371380: v16i32 = X86ISD::VBROADCAST 0x5632363b5d30
try.c: 0x5632363b5d30: i32,ch = load<LD4[ConstantPool]> 0x5632362c6960, 0x563236355ec0, undef:i64
try.c: 0x563236355ec0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56323637b8a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56323636f9f0: i64 = undef
try.c: 0x5632363bc9f0: 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: 0x5632363bc8c0: i32 = Constant<0>
try.c: 0x5632363bc8c0: i32 = Constant<0>
try.c: 0x5632363bc8c0: i32 = Constant<0>
try.c: 0x5632363bc8c0: i32 = Constant<0>
try.c: 0x5632363bc8c0: i32 = Constant<0>
try.c: 0x5632363bc8c0: i32 = Constant<0>
try.c: 0x5632363bc8c0: i32 = Constant<0>
try.c: 0x5632363bc8c0: i32 = Constant<0>
try.c: 0x5632363bc8c0: 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: 0x560c7766d130: v4i64 = X86ISD::VTRUNC 0x560c7766d000
try.c: 0x560c7766d000: v16i32 = vselect 0x560c77667b00, 0x560c775f4150, 0x560c7766ced0
try.c: 0x560c77667b00: v4i1 = X86ISD::PCMPGTM 0x560c77653330, 0x560c7764eec0
try.c: 0x560c77653330: v4i64 = X86ISD::VBROADCAST 0x560c775f4610
try.c: 0x560c775f4610: i64,ch = load<LD8[%lsr.iv6971]> 0x560c7754ca30, 0x560c775e9390, undef:i64
try.c: 0x560c775e9390: i64,ch = CopyFromReg 0x560c7754ca30, Register:i64 %vreg50
try.c: 0x560c7764f120: i64 = Register %vreg50
try.c: 0x560c775eb170: i64 = undef
try.c: 0x560c7764eec0: v4i64,ch = CopyFromReg 0x560c7754ca30, Register:v4i64 %vreg13
try.c: 0x560c77653b80: v4i64 = Register %vreg13
try.c: 0x560c775f4150: v16i32 = X86ISD::VBROADCAST 0x560c77653590
try.c: 0x560c77653590: i32,ch = load<LD4[ConstantPool]> 0x560c7754ca30, 0x560c775e7960, undef:i64
try.c: 0x560c775e7960: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560c775ebaf0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560c775eb170: i64 = undef
try.c: 0x560c7766ced0: 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: 0x560c7766cda0: i32 = Constant<0>
try.c: 0x560c7766cda0: i32 = Constant<0>
try.c: 0x560c7766cda0: i32 = Constant<0>
try.c: 0x560c7766cda0: i32 = Constant<0>
try.c: 0x560c7766cda0: i32 = Constant<0>
try.c: 0x560c7766cda0: i32 = Constant<0>
try.c: 0x560c7766cda0: i32 = Constant<0>
try.c: 0x560c7766cda0: i32 = Constant<0>
try.c: 0x560c7766cda0: 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: 0x56540a71d710: v4i64 = X86ISD::VTRUNC 0x56540a71d5e0
try.c: 0x56540a71d5e0: v16i32 = vselect 0x56540a723240, 0x56540a6c4980, 0x56540a71d4b0
try.c: 0x56540a723240: v4i1 = X86ISD::PCMPGTM 0x56540a71c110, 0x56540a717ee0
try.c: 0x56540a71c110: v4i64 = X86ISD::VBROADCAST 0x56540a6d8530
try.c: 0x56540a6d8530: i64,ch = load<LD8[%lsr.iv6971]> 0x56540a62d9a0, 0x56540a70cb50, undef:i64
try.c: 0x56540a70cb50: i64,ch = CopyFromReg 0x56540a62d9a0, Register:i64 %vreg50
try.c: 0x56540a718140: i64 = Register %vreg50
try.c: 0x56540a6c2ff0: i64 = undef
try.c: 0x56540a717ee0: v4i64,ch = CopyFromReg 0x56540a62d9a0, Register:v4i64 %vreg13
try.c: 0x56540a71c960: v4i64 = Register %vreg13
try.c: 0x56540a6c4980: v16i32 = X86ISD::VBROADCAST 0x56540a71c370
try.c: 0x56540a71c370: i32,ch = load<LD4[ConstantPool]> 0x56540a62d9a0, 0x56540a6d7b10, undef:i64
try.c: 0x56540a6d7b10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56540a7094f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56540a6c2ff0: i64 = undef
try.c: 0x56540a71d4b0: 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: 0x56540a71d380: i32 = Constant<0>
try.c: 0x56540a71d380: i32 = Constant<0>
try.c: 0x56540a71d380: i32 = Constant<0>
try.c: 0x56540a71d380: i32 = Constant<0>
try.c: 0x56540a71d380: i32 = Constant<0>
try.c: 0x56540a71d380: i32 = Constant<0>
try.c: 0x56540a71d380: i32 = Constant<0>
try.c: 0x56540a71d380: i32 = Constant<0>
try.c: 0x56540a71d380: 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