Implementation notes: amd64, cel02, crypto_aead/schwaemm128128v1

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: schwaemm128128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2337444948 0 019404 840 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2395309687 0 027628 840 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3911924974 0 022772 832 960T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4126344571 0 019115 824 896T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4143124451 0 018812 832 896T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4191485183 0 019819 832 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4447083724 0 016839 808 896T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4975344013 0 017223 816 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:opt
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: 0x564fdfddaf90: v4i64 = X86ISD::VTRUNC 0x564fdfddae60
try.c: 0x564fdfddae60: v16i32 = vselect 0x564fdfde7160, 0x564fdfd6c670, 0x564fdfddad30
try.c: 0x564fdfde7160: v4i1 = X86ISD::PCMPGTM 0x564fdfdc3630, 0x564fdfdbf1c0
try.c: 0x564fdfdc3630: v4i64 = X86ISD::VBROADCAST 0x564fdfd81d50
try.c: 0x564fdfd81d50: i64,ch = load<LD8[%lsr.iv6971]> 0x564fdfcd48f0, 0x564fdfd7f360, undef:i64
try.c: 0x564fdfd7f360: i64,ch = CopyFromReg 0x564fdfcd48f0, Register:i64 %vreg50
try.c: 0x564fdfdbf420: i64 = Register %vreg50
try.c: 0x564fdfd6ace0: i64 = undef
try.c: 0x564fdfdbf1c0: v4i64,ch = CopyFromReg 0x564fdfcd48f0, Register:v4i64 %vreg13
try.c: 0x564fdfdc3e80: v4i64 = Register %vreg13
try.c: 0x564fdfd6c670: v16i32 = X86ISD::VBROADCAST 0x564fdfdc3890
try.c: 0x564fdfdc3890: i32,ch = load<LD4[ConstantPool]> 0x564fdfcd48f0, 0x564fdfd81330, undef:i64
try.c: 0x564fdfd81330: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564fdfdb1f10: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564fdfd6ace0: i64 = undef
try.c: 0x564fdfddad30: 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: 0x564fdfddac00: i32 = Constant<0>
try.c: 0x564fdfddac00: i32 = Constant<0>
try.c: 0x564fdfddac00: i32 = Constant<0>
try.c: 0x564fdfddac00: i32 = Constant<0>
try.c: 0x564fdfddac00: i32 = Constant<0>
try.c: 0x564fdfddac00: i32 = Constant<0>
try.c: 0x564fdfddac00: i32 = Constant<0>
try.c: 0x564fdfddac00: i32 = Constant<0>
try.c: 0x564fdfddac00: 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:opt

Compiler output

Implementation: T:opt
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: 0x556b178d72e0: v4i64 = X86ISD::VTRUNC 0x556b178d71b0
try.c: 0x556b178d71b0: v16i32 = vselect 0x556b178b9fa0, 0x556b178538b0, 0x556b178d7080
try.c: 0x556b178b9fa0: v4i1 = X86ISD::PCMPGTM 0x556b178b2730, 0x556b178ae2c0
try.c: 0x556b178b2730: v4i64 = X86ISD::VBROADCAST 0x556b17853d70
try.c: 0x556b17853d70: i64,ch = load<LD8[%lsr.iv6971]> 0x556b177aba30, 0x556b1784c900, undef:i64
try.c: 0x556b1784c900: i64,ch = CopyFromReg 0x556b177aba30, Register:i64 %vreg50
try.c: 0x556b178ae520: i64 = Register %vreg50
try.c: 0x556b17829840: i64 = undef
try.c: 0x556b178ae2c0: v4i64,ch = CopyFromReg 0x556b177aba30, Register:v4i64 %vreg13
try.c: 0x556b178b2f80: v4i64 = Register %vreg13
try.c: 0x556b178538b0: v16i32 = X86ISD::VBROADCAST 0x556b178b2990
try.c: 0x556b178b2990: i32,ch = load<LD4[ConstantPool]> 0x556b177aba30, 0x556b1785c4d0, undef:i64
try.c: 0x556b1785c4d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556b1782a1c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556b17829840: i64 = undef
try.c: 0x556b178d7080: 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: 0x556b178d6f50: i32 = Constant<0>
try.c: 0x556b178d6f50: i32 = Constant<0>
try.c: 0x556b178d6f50: i32 = Constant<0>
try.c: 0x556b178d6f50: i32 = Constant<0>
try.c: 0x556b178d6f50: i32 = Constant<0>
try.c: 0x556b178d6f50: i32 = Constant<0>
try.c: 0x556b178d6f50: i32 = Constant<0>
try.c: 0x556b178d6f50: i32 = Constant<0>
try.c: 0x556b178d6f50: 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:opt

Compiler output

Implementation: T:opt
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: 0x563c18d4e070: v4i64 = X86ISD::VTRUNC 0x563c18d4df40
try.c: 0x563c18d4df40: v16i32 = vselect 0x563c18d639b0, 0x563c18ccf670, 0x563c18d4de10
try.c: 0x563c18d639b0: v4i1 = X86ISD::PCMPGTM 0x563c18d45a10, 0x563c18d415a0
try.c: 0x563c18d45a10: v4i64 = X86ISD::VBROADCAST 0x563c18cf0dc0
try.c: 0x563c18cf0dc0: i64,ch = load<LD8[%lsr.iv6971]> 0x563c18c56950, 0x563c18d38b50, undef:i64
try.c: 0x563c18d38b50: i64,ch = CopyFromReg 0x563c18c56950, Register:i64 %vreg50
try.c: 0x563c18d41800: i64 = Register %vreg50
try.c: 0x563c18cf2290: i64 = undef
try.c: 0x563c18d415a0: v4i64,ch = CopyFromReg 0x563c18c56950, Register:v4i64 %vreg13
try.c: 0x563c18d46260: v4i64 = Register %vreg13
try.c: 0x563c18ccf670: v16i32 = X86ISD::VBROADCAST 0x563c18d45c70
try.c: 0x563c18d45c70: i32,ch = load<LD4[ConstantPool]> 0x563c18c56950, 0x563c18ced7a0, undef:i64
try.c: 0x563c18ced7a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563c18d2f5a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563c18cf2290: i64 = undef
try.c: 0x563c18d4de10: 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: 0x563c18d4dce0: i32 = Constant<0>
try.c: 0x563c18d4dce0: i32 = Constant<0>
try.c: 0x563c18d4dce0: i32 = Constant<0>
try.c: 0x563c18d4dce0: i32 = Constant<0>
try.c: 0x563c18d4dce0: i32 = Constant<0>
try.c: 0x563c18d4dce0: i32 = Constant<0>
try.c: 0x563c18d4dce0: i32 = Constant<0>
try.c: 0x563c18d4dce0: i32 = Constant<0>
try.c: 0x563c18d4dce0: 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:opt

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: crypto_aead_schwaemm128128v1.a(encrypt.o): In function `crypto_aead_schwaemm128128v1_opt_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm128128v1.a(encrypt.o): In function `crypto_aead_schwaemm128128v1_opt_timingleaks_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

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: 0x55ffefd906d0: v4i64 = X86ISD::VTRUNC 0x55ffefd905a0
try.c: 0x55ffefd905a0: v16i32 = vselect 0x55ffefd96b20, 0x55ffefd3aa10, 0x55ffefd90470
try.c: 0x55ffefd96b20: v4i1 = X86ISD::PCMPGTM 0x55ffefd8ba20, 0x55ffefd875b0
try.c: 0x55ffefd8ba20: v4i64 = X86ISD::VBROADCAST 0x55ffefd37bb0
try.c: 0x55ffefd37bb0: i64,ch = load<LD8[%lsr.iv6971]> 0x55ffefc9c920, 0x55ffefd70ec0, undef:i64
try.c: 0x55ffefd70ec0: i64,ch = CopyFromReg 0x55ffefc9c920, Register:i64 %vreg50
try.c: 0x55ffefd87810: i64 = Register %vreg50
try.c: 0x55ffefd39080: i64 = undef
try.c: 0x55ffefd875b0: v4i64,ch = CopyFromReg 0x55ffefc9c920, Register:v4i64 %vreg13
try.c: 0x55ffefd8c270: v4i64 = Register %vreg13
try.c: 0x55ffefd3aa10: v16i32 = X86ISD::VBROADCAST 0x55ffefd8bc80
try.c: 0x55ffefd8bc80: i32,ch = load<LD4[ConstantPool]> 0x55ffefc9c920, 0x55ffefd30920, undef:i64
try.c: 0x55ffefd30920: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ffefd74b70: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ffefd39080: i64 = undef
try.c: 0x55ffefd90470: 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: 0x55ffefd90340: i32 = Constant<0>
try.c: 0x55ffefd90340: i32 = Constant<0>
try.c: 0x55ffefd90340: i32 = Constant<0>
try.c: 0x55ffefd90340: i32 = Constant<0>
try.c: 0x55ffefd90340: i32 = Constant<0>
try.c: 0x55ffefd90340: i32 = Constant<0>
try.c: 0x55ffefd90340: i32 = Constant<0>
try.c: 0x55ffefd90340: i32 = Constant<0>
try.c: 0x55ffefd90340: 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: 0x5569916d5210: v4i64 = X86ISD::VTRUNC 0x5569916d50e0
try.c: 0x5569916d50e0: v16i32 = vselect 0x5569916b33a0, 0x55699164c610, 0x5569916d4fb0
try.c: 0x5569916b33a0: v4i1 = X86ISD::PCMPGTM 0x5569916b0380, 0x5569916abf10
try.c: 0x5569916b0380: v4i64 = X86ISD::VBROADCAST 0x55699164cad0
try.c: 0x55699164cad0: i64,ch = load<LD8[%lsr.iv6971]> 0x5569915a9a30, 0x55699165c800, undef:i64
try.c: 0x55699165c800: i64,ch = CopyFromReg 0x5569915a9a30, Register:i64 %vreg50
try.c: 0x5569916ac170: i64 = Register %vreg50
try.c: 0x5569916468c0: i64 = undef
try.c: 0x5569916abf10: v4i64,ch = CopyFromReg 0x5569915a9a30, Register:v4i64 %vreg13
try.c: 0x5569916b0bd0: v4i64 = Register %vreg13
try.c: 0x55699164c610: v16i32 = X86ISD::VBROADCAST 0x5569916b05e0
try.c: 0x5569916b05e0: i32,ch = load<LD4[ConstantPool]> 0x5569915a9a30, 0x55699165a5c0, undef:i64
try.c: 0x55699165a5c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556991647240: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5569916468c0: i64 = undef
try.c: 0x5569916d4fb0: 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: 0x5569916d4e80: i32 = Constant<0>
try.c: 0x5569916d4e80: i32 = Constant<0>
try.c: 0x5569916d4e80: i32 = Constant<0>
try.c: 0x5569916d4e80: i32 = Constant<0>
try.c: 0x5569916d4e80: i32 = Constant<0>
try.c: 0x5569916d4e80: i32 = Constant<0>
try.c: 0x5569916d4e80: i32 = Constant<0>
try.c: 0x5569916d4e80: i32 = Constant<0>
try.c: 0x5569916d4e80: 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: 0x56330cca3660: v4i64 = X86ISD::VTRUNC 0x56330cca3530
try.c: 0x56330cca3530: v16i32 = vselect 0x56330ccc1480, 0x56330cc3de10, 0x56330cca3400
try.c: 0x56330ccc1480: v4i1 = X86ISD::PCMPGTM 0x56330cc9e030, 0x56330cc99bc0
try.c: 0x56330cc9e030: v4i64 = X86ISD::VBROADCAST 0x56330cc41c10
try.c: 0x56330cc41c10: i64,ch = load<LD8[%lsr.iv6971]> 0x56330cbae950, 0x56330cc85b20, undef:i64
try.c: 0x56330cc85b20: i64,ch = CopyFromReg 0x56330cbae950, Register:i64 %vreg50
try.c: 0x56330cc99e20: i64 = Register %vreg50
try.c: 0x56330cc3c480: i64 = undef
try.c: 0x56330cc99bc0: v4i64,ch = CopyFromReg 0x56330cbae950, Register:v4i64 %vreg13
try.c: 0x56330cc9e880: v4i64 = Register %vreg13
try.c: 0x56330cc3de10: v16i32 = X86ISD::VBROADCAST 0x56330cc9e290
try.c: 0x56330cc9e290: i32,ch = load<LD4[ConstantPool]> 0x56330cbae950, 0x56330cc411f0, undef:i64
try.c: 0x56330cc411f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56330cc575a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56330cc3c480: i64 = undef
try.c: 0x56330cca3400: 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: 0x56330cca32d0: i32 = Constant<0>
try.c: 0x56330cca32d0: i32 = Constant<0>
try.c: 0x56330cca32d0: i32 = Constant<0>
try.c: 0x56330cca32d0: i32 = Constant<0>
try.c: 0x56330cca32d0: i32 = Constant<0>
try.c: 0x56330cca32d0: i32 = Constant<0>
try.c: 0x56330cca32d0: i32 = Constant<0>
try.c: 0x56330cca32d0: i32 = Constant<0>
try.c: 0x56330cca32d0: 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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: crypto_aead_schwaemm128128v1.a(encrypt.o): In function `crypto_aead_schwaemm128128v1_ref_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm128128v1.a(encrypt.o): In function `crypto_aead_schwaemm128128v1_ref_timingleaks_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref