Implementation notes: amd64, cel02, crypto_kem/rqc256

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: rqc256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2101163231278 0 2484642 920 1640T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2179901627403 0 2479594 912 1608T:avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2613231629917 0 2482317 888 1576T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2837804845094 0 24102218 920 1672T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3045907233083 0 2486954 920 1640T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
8037790040994 0 2895513 904 3664T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
8883677047718 0 28104866 920 3744T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
14466470429899 0 2882277 888 3632T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
14635971031959 0 2885322 920 3712T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
14726074827698 0 2879890 912 3680T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
14798833033651 0 2887538 920 3712T:refgcc_-march=native_-mtune=native_-O2_-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: 0x55ff2853c3d0: v4i64 = X86ISD::VTRUNC 0x55ff2853c2a0
try.c: 0x55ff2853c2a0: v16i32 = vselect 0x55ff28538db0, 0x55ff284c2ba0, 0x55ff2853c170
try.c: 0x55ff28538db0: v4i1 = X86ISD::PCMPGTM 0x55ff285199d0, 0x55ff28515560
try.c: 0x55ff285199d0: v4i64 = X86ISD::VBROADCAST 0x55ff284bfd40
try.c: 0x55ff284bfd40: i64,ch = load<LD8[%lsr.iv6971]> 0x55ff2842a920, 0x55ff28504640, undef:i64
try.c: 0x55ff28504640: i64,ch = CopyFromReg 0x55ff2842a920, Register:i64 %vreg50
try.c: 0x55ff285157c0: i64 = Register %vreg50
try.c: 0x55ff284c1210: i64 = undef
try.c: 0x55ff28515560: v4i64,ch = CopyFromReg 0x55ff2842a920, Register:v4i64 %vreg13
try.c: 0x55ff2851a220: v4i64 = Register %vreg13
try.c: 0x55ff284c2ba0: v16i32 = X86ISD::VBROADCAST 0x55ff28519c30
try.c: 0x55ff28519c30: i32,ch = load<LD4[ConstantPool]> 0x55ff2842a920, 0x55ff284b8f00, undef:i64
try.c: 0x55ff284b8f00: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ff2850c340: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ff284c1210: i64 = undef
try.c: 0x55ff2853c170: 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: 0x55ff2853c040: i32 = Constant<0>
try.c: 0x55ff2853c040: i32 = Constant<0>
try.c: 0x55ff2853c040: i32 = Constant<0>
try.c: 0x55ff2853c040: i32 = Constant<0>
try.c: 0x55ff2853c040: i32 = Constant<0>
try.c: 0x55ff2853c040: i32 = Constant<0>
try.c: 0x55ff2853c040: i32 = Constant<0>
try.c: 0x55ff2853c040: i32 = Constant<0>
try.c: 0x55ff2853c040: 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: 0x561e4a35c4a0: v4i64 = X86ISD::VTRUNC 0x561e4a35c370
try.c: 0x561e4a35c370: v16i32 = vselect 0x561e4a34fc70, 0x561e4a2d3090, 0x561e4a35c240
try.c: 0x561e4a34fc70: v4i1 = X86ISD::PCMPGTM 0x561e4a337ec0, 0x561e4a333a50
try.c: 0x561e4a337ec0: v4i64 = X86ISD::VBROADCAST 0x561e4a2d3550
try.c: 0x561e4a2d3550: i64,ch = load<LD8[%lsr.iv6971]> 0x561e4a231a10, 0x561e4a2cbeb0, undef:i64
try.c: 0x561e4a2cbeb0: i64,ch = CopyFromReg 0x561e4a231a10, Register:i64 %vreg50
try.c: 0x561e4a333cb0: i64 = Register %vreg50
try.c: 0x561e4a2af030: i64 = undef
try.c: 0x561e4a333a50: v4i64,ch = CopyFromReg 0x561e4a231a10, Register:v4i64 %vreg13
try.c: 0x561e4a338710: v4i64 = Register %vreg13
try.c: 0x561e4a2d3090: v16i32 = X86ISD::VBROADCAST 0x561e4a338120
try.c: 0x561e4a338120: i32,ch = load<LD4[ConstantPool]> 0x561e4a231a10, 0x561e4a2d5a30, undef:i64
try.c: 0x561e4a2d5a30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x561e4a2af9b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x561e4a2af030: i64 = undef
try.c: 0x561e4a35c240: 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: 0x561e4a35c110: i32 = Constant<0>
try.c: 0x561e4a35c110: i32 = Constant<0>
try.c: 0x561e4a35c110: i32 = Constant<0>
try.c: 0x561e4a35c110: i32 = Constant<0>
try.c: 0x561e4a35c110: i32 = Constant<0>
try.c: 0x561e4a35c110: i32 = Constant<0>
try.c: 0x561e4a35c110: i32 = Constant<0>
try.c: 0x561e4a35c110: i32 = Constant<0>
try.c: 0x561e4a35c110: 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: 0x55f221240650: v4i64 = X86ISD::VTRUNC 0x55f221240520
try.c: 0x55f221240520: v16i32 = vselect 0x55f22123d030, 0x55f2211c5ce0, 0x55f2212403f0
try.c: 0x55f22123d030: v4i1 = X86ISD::PCMPGTM 0x55f22121dab0, 0x55f221219640
try.c: 0x55f22121dab0: v4i64 = X86ISD::VBROADCAST 0x55f2211c1360
try.c: 0x55f2211c1360: i64,ch = load<LD8[%lsr.iv6971]> 0x55f22112e9a0, 0x55f2212144a0, undef:i64
try.c: 0x55f2212144a0: i64,ch = CopyFromReg 0x55f22112e9a0, Register:i64 %vreg50
try.c: 0x55f2212198a0: i64 = Register %vreg50
try.c: 0x55f2211c2830: i64 = undef
try.c: 0x55f221219640: v4i64,ch = CopyFromReg 0x55f22112e9a0, Register:v4i64 %vreg13
try.c: 0x55f22121e300: v4i64 = Register %vreg13
try.c: 0x55f2211c5ce0: v16i32 = X86ISD::VBROADCAST 0x55f22121dd10
try.c: 0x55f22121dd10: i32,ch = load<LD4[ConstantPool]> 0x55f22112e9a0, 0x55f2211ad430, undef:i64
try.c: 0x55f2211ad430: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55f2211c41b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55f2211c2830: i64 = undef
try.c: 0x55f2212403f0: 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: 0x55f2212402c0: i32 = Constant<0>
try.c: 0x55f2212402c0: i32 = Constant<0>
try.c: 0x55f2212402c0: i32 = Constant<0>
try.c: 0x55f2212402c0: i32 = Constant<0>
try.c: 0x55f2212402c0: i32 = Constant<0>
try.c: 0x55f2212402c0: i32 = Constant<0>
try.c: 0x55f2212402c0: i32 = Constant<0>
try.c: 0x55f2212402c0: i32 = Constant<0>
try.c: 0x55f2212402c0: 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:526: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:528: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:529: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:531:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a0_b2 = _mm_clmulepi64_si128(a, d, 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:532:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: ...

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: 0x55ee82f4f8e0: v4i64 = X86ISD::VTRUNC 0x55ee82f4f7b0
try.c: 0x55ee82f4f7b0: v16i32 = vselect 0x55ee82f48700, 0x55ee82ee9900, 0x55ee82f4f680
try.c: 0x55ee82f48700: v4i1 = X86ISD::PCMPGTM 0x55ee82f456d0, 0x55ee82f41260
try.c: 0x55ee82f456d0: v4i64 = X86ISD::VBROADCAST 0x55ee82f0b790
try.c: 0x55ee82f0b790: i64,ch = load<LD8[%lsr.iv6971]> 0x55ee82e56920, 0x55ee82f2f820, undef:i64
try.c: 0x55ee82f2f820: i64,ch = CopyFromReg 0x55ee82e56920, Register:i64 %vreg50
try.c: 0x55ee82f414c0: i64 = Register %vreg50
try.c: 0x55ee82f0cc60: i64 = undef
try.c: 0x55ee82f41260: v4i64,ch = CopyFromReg 0x55ee82e56920, Register:v4i64 %vreg13
try.c: 0x55ee82f45f20: v4i64 = Register %vreg13
try.c: 0x55ee82ee9900: v16i32 = X86ISD::VBROADCAST 0x55ee82f45930
try.c: 0x55ee82f45930: i32,ch = load<LD4[ConstantPool]> 0x55ee82e56920, 0x55ee82f00d20, undef:i64
try.c: 0x55ee82f00d20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ee82eed7c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ee82f0cc60: i64 = undef
try.c: 0x55ee82f4f680: 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: 0x55ee82f4f550: i32 = Constant<0>
try.c: 0x55ee82f4f550: i32 = Constant<0>
try.c: 0x55ee82f4f550: i32 = Constant<0>
try.c: 0x55ee82f4f550: i32 = Constant<0>
try.c: 0x55ee82f4f550: i32 = Constant<0>
try.c: 0x55ee82f4f550: i32 = Constant<0>
try.c: 0x55ee82f4f550: i32 = Constant<0>
try.c: 0x55ee82f4f550: i32 = Constant<0>
try.c: 0x55ee82f4f550: 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: 0x55d4689726b0: v4i64 = X86ISD::VTRUNC 0x55d468972580
try.c: 0x55d468972580: v16i32 = vselect 0x55d4689780b0, 0x55d4688f2c60, 0x55d468972450
try.c: 0x55d4689780b0: v4i1 = X86ISD::PCMPGTM 0x55d4689598c0, 0x55d468955450
try.c: 0x55d4689598c0: v4i64 = X86ISD::VBROADCAST 0x55d4688f3120
try.c: 0x55d4688f3120: i64,ch = load<LD8[%lsr.iv6971]> 0x55d468852a00, 0x55d468902740, undef:i64
try.c: 0x55d468902740: i64,ch = CopyFromReg 0x55d468852a00, Register:i64 %vreg50
try.c: 0x55d4689556b0: i64 = Register %vreg50
try.c: 0x55d4688d0020: i64 = undef
try.c: 0x55d468955450: v4i64,ch = CopyFromReg 0x55d468852a00, Register:v4i64 %vreg13
try.c: 0x55d46895a110: v4i64 = Register %vreg13
try.c: 0x55d4688f2c60: v16i32 = X86ISD::VBROADCAST 0x55d468959b20
try.c: 0x55d468959b20: i32,ch = load<LD4[ConstantPool]> 0x55d468852a00, 0x55d4688f5600, undef:i64
try.c: 0x55d4688f5600: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d4688d09a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d4688d0020: i64 = undef
try.c: 0x55d468972450: 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: 0x55d468972320: i32 = Constant<0>
try.c: 0x55d468972320: i32 = Constant<0>
try.c: 0x55d468972320: i32 = Constant<0>
try.c: 0x55d468972320: i32 = Constant<0>
try.c: 0x55d468972320: i32 = Constant<0>
try.c: 0x55d468972320: i32 = Constant<0>
try.c: 0x55d468972320: i32 = Constant<0>
try.c: 0x55d468972320: i32 = Constant<0>
try.c: 0x55d468972320: 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: 0x5594994381b0: v4i64 = X86ISD::VTRUNC 0x559499438080
try.c: 0x559499438080: v16i32 = vselect 0x559499432b80, 0x5594993bc840, 0x559499437f50
try.c: 0x559499432b80: v4i1 = X86ISD::PCMPGTM 0x55949941c9c0, 0x559499418550
try.c: 0x55949941c9c0: v4i64 = X86ISD::VBROADCAST 0x5594993bf650
try.c: 0x5594993bf650: i64,ch = load<LD8[%lsr.iv6971]> 0x55949932d920, 0x5594994133b0, undef:i64
try.c: 0x5594994133b0: i64,ch = CopyFromReg 0x55949932d920, Register:i64 %vreg50
try.c: 0x5594994187b0: i64 = Register %vreg50
try.c: 0x5594993c0b20: i64 = undef
try.c: 0x559499418550: v4i64,ch = CopyFromReg 0x55949932d920, Register:v4i64 %vreg13
try.c: 0x55949941d210: v4i64 = Register %vreg13
try.c: 0x5594993bc840: v16i32 = X86ISD::VBROADCAST 0x55949941cc20
try.c: 0x55949941cc20: i32,ch = load<LD4[ConstantPool]> 0x55949932d920, 0x5594993c3e60, undef:i64
try.c: 0x5594993c3e60: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5594993c7b50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5594993c0b20: i64 = undef
try.c: 0x559499437f50: 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: 0x559499437e20: i32 = Constant<0>
try.c: 0x559499437e20: i32 = Constant<0>
try.c: 0x559499437e20: i32 = Constant<0>
try.c: 0x559499437e20: i32 = Constant<0>
try.c: 0x559499437e20: i32 = Constant<0>
try.c: 0x559499437e20: i32 = Constant<0>
try.c: 0x559499437e20: i32 = Constant<0>
try.c: 0x559499437e20: i32 = Constant<0>
try.c: 0x559499437e20: 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