Implementation notes: amd64, cel02, crypto_kem/rqc128

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: rqc128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
482768230265 0 2483626 920 1640T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
510401426604 0 2478826 912 1608T:avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
601098632330 0 2486266 920 1640T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
659847028677 0 2481077 888 1576T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
670883643373 0 24100522 920 1672T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1367949238770 0 2893289 904 3664T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2418386246101 0 28103266 920 3744T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3862713028735 0 2881157 888 3632T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
4369883027070 0 2879266 912 3680T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4466247032706 0 2886666 920 3712T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4561131430792 0 2884186 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: 0x564e004c9380: v4i64 = X86ISD::VTRUNC 0x564e004c9250
try.c: 0x564e004c9250: v16i32 = vselect 0x564e004a3590, 0x564e0046c0c0, 0x564e004c9120
try.c: 0x564e004a3590: v4i1 = X86ISD::PCMPGTM 0x564e004b1a20, 0x564e004ad5b0
try.c: 0x564e004b1a20: v4i64 = X86ISD::VBROADCAST 0x564e004607a0
try.c: 0x564e004607a0: i64,ch = load<LD8[%lsr.iv6971]> 0x564e003c2920, 0x564e0049cce0, undef:i64
try.c: 0x564e0049cce0: i64,ch = CopyFromReg 0x564e003c2920, Register:i64 %vreg50
try.c: 0x564e004ad810: i64 = Register %vreg50
try.c: 0x564e0046a730: i64 = undef
try.c: 0x564e004ad5b0: v4i64,ch = CopyFromReg 0x564e003c2920, Register:v4i64 %vreg13
try.c: 0x564e004b2270: v4i64 = Register %vreg13
try.c: 0x564e0046c0c0: v16i32 = X86ISD::VBROADCAST 0x564e004b1c80
try.c: 0x564e004b1c80: i32,ch = load<LD4[ConstantPool]> 0x564e003c2920, 0x564e0045fd80, undef:i64
try.c: 0x564e0045fd80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564e0046f220: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564e0046a730: i64 = undef
try.c: 0x564e004c9120: 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: 0x564e004c8ff0: i32 = Constant<0>
try.c: 0x564e004c8ff0: i32 = Constant<0>
try.c: 0x564e004c8ff0: i32 = Constant<0>
try.c: 0x564e004c8ff0: i32 = Constant<0>
try.c: 0x564e004c8ff0: i32 = Constant<0>
try.c: 0x564e004c8ff0: i32 = Constant<0>
try.c: 0x564e004c8ff0: i32 = Constant<0>
try.c: 0x564e004c8ff0: i32 = Constant<0>
try.c: 0x564e004c8ff0: 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: 0x55e75dc9bc20: v4i64 = X86ISD::VTRUNC 0x55e75dc9baf0
try.c: 0x55e75dc9baf0: v16i32 = vselect 0x55e75dc81a60, 0x55e75dc173b0, 0x55e75dc9b9c0
try.c: 0x55e75dc81a60: v4i1 = X86ISD::PCMPGTM 0x55e75dc83ad0, 0x55e75dc7f660
try.c: 0x55e75dc83ad0: v4i64 = X86ISD::VBROADCAST 0x55e75dc17870
try.c: 0x55e75dc17870: i64,ch = load<LD8[%lsr.iv6971]> 0x55e75db7da10, 0x55e75dc310d0, undef:i64
try.c: 0x55e75dc310d0: i64,ch = CopyFromReg 0x55e75db7da10, Register:i64 %vreg50
try.c: 0x55e75dc7f8c0: i64 = Register %vreg50
try.c: 0x55e75dc20fe0: i64 = undef
try.c: 0x55e75dc7f660: v4i64,ch = CopyFromReg 0x55e75db7da10, Register:v4i64 %vreg13
try.c: 0x55e75dc84320: v4i64 = Register %vreg13
try.c: 0x55e75dc173b0: v16i32 = X86ISD::VBROADCAST 0x55e75dc83d30
try.c: 0x55e75dc83d30: i32,ch = load<LD4[ConstantPool]> 0x55e75db7da10, 0x55e75dc19d50, undef:i64
try.c: 0x55e75dc19d50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e75dc21960: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e75dc20fe0: i64 = undef
try.c: 0x55e75dc9b9c0: 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: 0x55e75dc9b890: i32 = Constant<0>
try.c: 0x55e75dc9b890: i32 = Constant<0>
try.c: 0x55e75dc9b890: i32 = Constant<0>
try.c: 0x55e75dc9b890: i32 = Constant<0>
try.c: 0x55e75dc9b890: i32 = Constant<0>
try.c: 0x55e75dc9b890: i32 = Constant<0>
try.c: 0x55e75dc9b890: i32 = Constant<0>
try.c: 0x55e75dc9b890: i32 = Constant<0>
try.c: 0x55e75dc9b890: 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: 0x5625ff5fa250: v4i64 = X86ISD::VTRUNC 0x5625ff5fa120
try.c: 0x5625ff5fa120: v16i32 = vselect 0x5625ff60ab70, 0x5625ff5ae0f0, 0x5625ff5f9ff0
try.c: 0x5625ff60ab70: v4i1 = X86ISD::PCMPGTM 0x5625ff5f3800, 0x5625ff5ef390
try.c: 0x5625ff5f3800: v4i64 = X86ISD::VBROADCAST 0x5625ff5945b0
try.c: 0x5625ff5945b0: i64,ch = load<LD8[%lsr.iv6971]> 0x5625ff504920, 0x5625ff5616d0, undef:i64
try.c: 0x5625ff5616d0: i64,ch = CopyFromReg 0x5625ff504920, Register:i64 %vreg50
try.c: 0x5625ff5ef5f0: i64 = Register %vreg50
try.c: 0x5625ff595a80: i64 = undef
try.c: 0x5625ff5ef390: v4i64,ch = CopyFromReg 0x5625ff504920, Register:v4i64 %vreg13
try.c: 0x5625ff5f4050: v4i64 = Register %vreg13
try.c: 0x5625ff5ae0f0: v16i32 = X86ISD::VBROADCAST 0x5625ff5f3a60
try.c: 0x5625ff5f3a60: i32,ch = load<LD4[ConstantPool]> 0x5625ff504920, 0x5625ff598b80, undef:i64
try.c: 0x5625ff598b80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5625ff5ddd60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5625ff595a80: i64 = undef
try.c: 0x5625ff5f9ff0: 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: 0x5625ff5f9ec0: i32 = Constant<0>
try.c: 0x5625ff5f9ec0: i32 = Constant<0>
try.c: 0x5625ff5f9ec0: i32 = Constant<0>
try.c: 0x5625ff5f9ec0: i32 = Constant<0>
try.c: 0x5625ff5f9ec0: i32 = Constant<0>
try.c: 0x5625ff5f9ec0: i32 = Constant<0>
try.c: 0x5625ff5f9ec0: i32 = Constant<0>
try.c: 0x5625ff5f9ec0: i32 = Constant<0>
try.c: 0x5625ff5f9ec0: 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: 0x5611f9c2cf00: v4i64 = X86ISD::VTRUNC 0x5611f9c2cdd0
try.c: 0x5611f9c2cdd0: v16i32 = vselect 0x5611f9c43470, 0x5611f9bca960, 0x5611f9c2cca0
try.c: 0x5611f9c43470: v4i1 = X86ISD::PCMPGTM 0x5611f9c288e0, 0x5611f9c24470
try.c: 0x5611f9c288e0: v4i64 = X86ISD::VBROADCAST 0x5611f9bc7b00
try.c: 0x5611f9bc7b00: i64,ch = load<LD8[%lsr.iv6971]> 0x5611f9b39930, 0x5611f9c12160, undef:i64
try.c: 0x5611f9c12160: i64,ch = CopyFromReg 0x5611f9b39930, Register:i64 %vreg50
try.c: 0x5611f9c246d0: i64 = Register %vreg50
try.c: 0x5611f9bc8fd0: i64 = undef
try.c: 0x5611f9c24470: v4i64,ch = CopyFromReg 0x5611f9b39930, Register:v4i64 %vreg13
try.c: 0x5611f9c29130: v4i64 = Register %vreg13
try.c: 0x5611f9bca960: v16i32 = X86ISD::VBROADCAST 0x5611f9c28b40
try.c: 0x5611f9c28b40: i32,ch = load<LD4[ConstantPool]> 0x5611f9b39930, 0x5611f9be47a0, undef:i64
try.c: 0x5611f9be47a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5611f9bd2420: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5611f9bc8fd0: i64 = undef
try.c: 0x5611f9c2cca0: 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: 0x5611f9c2cb70: i32 = Constant<0>
try.c: 0x5611f9c2cb70: i32 = Constant<0>
try.c: 0x5611f9c2cb70: i32 = Constant<0>
try.c: 0x5611f9c2cb70: i32 = Constant<0>
try.c: 0x5611f9c2cb70: i32 = Constant<0>
try.c: 0x5611f9c2cb70: i32 = Constant<0>
try.c: 0x5611f9c2cb70: i32 = Constant<0>
try.c: 0x5611f9c2cb70: i32 = Constant<0>
try.c: 0x5611f9c2cb70: 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: 0x55cf20752810: v4i64 = X86ISD::VTRUNC 0x55cf207526e0
try.c: 0x55cf207526e0: v16i32 = vselect 0x55cf20757020, 0x55cf206ddf00, 0x55cf207525b0
try.c: 0x55cf20757020: v4i1 = X86ISD::PCMPGTM 0x55cf2074b1d0, 0x55cf20746d60
try.c: 0x55cf2074b1d0: v4i64 = X86ISD::VBROADCAST 0x55cf206de3c0
try.c: 0x55cf206de3c0: i64,ch = load<LD8[%lsr.iv6971]> 0x55cf20644a00, 0x55cf206f4ae0, undef:i64
try.c: 0x55cf206f4ae0: i64,ch = CopyFromReg 0x55cf20644a00, Register:i64 %vreg50
try.c: 0x55cf20746fc0: i64 = Register %vreg50
try.c: 0x55cf206e1dd0: i64 = undef
try.c: 0x55cf20746d60: v4i64,ch = CopyFromReg 0x55cf20644a00, Register:v4i64 %vreg13
try.c: 0x55cf2074ba20: v4i64 = Register %vreg13
try.c: 0x55cf206ddf00: v16i32 = X86ISD::VBROADCAST 0x55cf2074b430
try.c: 0x55cf2074b430: i32,ch = load<LD4[ConstantPool]> 0x55cf20644a00, 0x55cf206e08a0, undef:i64
try.c: 0x55cf206e08a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cf206e2750: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cf206e1dd0: i64 = undef
try.c: 0x55cf207525b0: 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: 0x55cf20752480: i32 = Constant<0>
try.c: 0x55cf20752480: i32 = Constant<0>
try.c: 0x55cf20752480: i32 = Constant<0>
try.c: 0x55cf20752480: i32 = Constant<0>
try.c: 0x55cf20752480: i32 = Constant<0>
try.c: 0x55cf20752480: i32 = Constant<0>
try.c: 0x55cf20752480: i32 = Constant<0>
try.c: 0x55cf20752480: i32 = Constant<0>
try.c: 0x55cf20752480: 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: 0x55fe97e2d010: v4i64 = X86ISD::VTRUNC 0x55fe97e2cee0
try.c: 0x55fe97e2cee0: v16i32 = vselect 0x55fe97e19090, 0x55fe97db8c30, 0x55fe97e2cdb0
try.c: 0x55fe97e19090: v4i1 = X86ISD::PCMPGTM 0x55fe97e11830, 0x55fe97e0d3c0
try.c: 0x55fe97e11830: v4i64 = X86ISD::VBROADCAST 0x55fe97dad410
try.c: 0x55fe97dad410: i64,ch = load<LD8[%lsr.iv6971]> 0x55fe97d22920, 0x55fe97e08220, undef:i64
try.c: 0x55fe97e08220: i64,ch = CopyFromReg 0x55fe97d22920, Register:i64 %vreg50
try.c: 0x55fe97e0d620: i64 = Register %vreg50
try.c: 0x55fe97dae8e0: i64 = undef
try.c: 0x55fe97e0d3c0: v4i64,ch = CopyFromReg 0x55fe97d22920, Register:v4i64 %vreg13
try.c: 0x55fe97e12080: v4i64 = Register %vreg13
try.c: 0x55fe97db8c30: v16i32 = X86ISD::VBROADCAST 0x55fe97e11a90
try.c: 0x55fe97e11a90: i32,ch = load<LD4[ConstantPool]> 0x55fe97d22920, 0x55fe97db6270, undef:i64
try.c: 0x55fe97db6270: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55fe97df8c60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55fe97dae8e0: i64 = undef
try.c: 0x55fe97e2cdb0: 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: 0x55fe97e2cc80: i32 = Constant<0>
try.c: 0x55fe97e2cc80: i32 = Constant<0>
try.c: 0x55fe97e2cc80: i32 = Constant<0>
try.c: 0x55fe97e2cc80: i32 = Constant<0>
try.c: 0x55fe97e2cc80: i32 = Constant<0>
try.c: 0x55fe97e2cc80: i32 = Constant<0>
try.c: 0x55fe97e2cc80: i32 = Constant<0>
try.c: 0x55fe97e2cc80: i32 = Constant<0>
try.c: 0x55fe97e2cc80: 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