Implementation notes: amd64, cel02, crypto_aead/scream10v1

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: scream10v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
7741613707 0 034725 824 896T:ssegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
13190213748 0 034261 824 896T:ssegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
13192023303 0 047549 824 960T:ssegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
13193211407 0 030392 800 896T:ssegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
14429214085 0 032604 792 856T:sseclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
4958529287 0 033381 824 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5373486897 0 027797 824 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
6991848671 0 028882 800 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
9393625961 0 024832 800 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
9472885801 0 024180 792 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
10312466477 0 026901 824 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

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: 0x55f526340790: v4i64 = X86ISD::VTRUNC 0x55f526340660
try.c: 0x55f526340660: v16i32 = vselect 0x55f5263534e0, 0x55f5262e3820, 0x55f526340530
try.c: 0x55f5263534e0: v4i1 = X86ISD::PCMPGTM 0x55f52633c170, 0x55f526337d00
try.c: 0x55f52633c170: v4i64 = X86ISD::VBROADCAST 0x55f5262dcee0
try.c: 0x55f5262dcee0: i64,ch = load<LD8[%lsr.iv6971]> 0x55f52624c9d0, 0x55f52632e990, undef:i64
try.c: 0x55f52632e990: i64,ch = CopyFromReg 0x55f52624c9d0, Register:i64 %vreg50
try.c: 0x55f526337f60: i64 = Register %vreg50
try.c: 0x55f5262e1e90: i64 = undef
try.c: 0x55f526337d00: v4i64,ch = CopyFromReg 0x55f52624c9d0, Register:v4i64 %vreg13
try.c: 0x55f52633c9c0: v4i64 = Register %vreg13
try.c: 0x55f5262e3820: v16i32 = X86ISD::VBROADCAST 0x55f52633c3d0
try.c: 0x55f52633c3d0: i32,ch = load<LD4[ConstantPool]> 0x55f52624c9d0, 0x55f5262dc4c0, undef:i64
try.c: 0x55f5262dc4c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55f526320650: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55f5262e1e90: i64 = undef
try.c: 0x55f526340530: 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: 0x55f526340400: i32 = Constant<0>
try.c: 0x55f526340400: i32 = Constant<0>
try.c: 0x55f526340400: i32 = Constant<0>
try.c: 0x55f526340400: i32 = Constant<0>
try.c: 0x55f526340400: i32 = Constant<0>
try.c: 0x55f526340400: i32 = Constant<0>
try.c: 0x55f526340400: i32 = Constant<0>
try.c: 0x55f526340400: i32 = Constant<0>
try.c: 0x55f526340400: 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: 0x5640f1fd75f0: v4i64 = X86ISD::VTRUNC 0x5640f1fd74c0
try.c: 0x5640f1fd74c0: v16i32 = vselect 0x5640f1fe38b0, 0x5640f1f66f80, 0x5640f1fd7390
try.c: 0x5640f1fe38b0: v4i1 = X86ISD::PCMPGTM 0x5640f1fcad30, 0x5640f1fc68c0
try.c: 0x5640f1fcad30: v4i64 = X86ISD::VBROADCAST 0x5640f1f67440
try.c: 0x5640f1f67440: i64,ch = load<LD8[%lsr.iv6971]> 0x5640f1ec4a30, 0x5640f1f76850, undef:i64
try.c: 0x5640f1f76850: i64,ch = CopyFromReg 0x5640f1ec4a30, Register:i64 %vreg50
try.c: 0x5640f1fc6b20: i64 = Register %vreg50
try.c: 0x5640f1f7a280: i64 = undef
try.c: 0x5640f1fc68c0: v4i64,ch = CopyFromReg 0x5640f1ec4a30, Register:v4i64 %vreg13
try.c: 0x5640f1fcb580: v4i64 = Register %vreg13
try.c: 0x5640f1f66f80: v16i32 = X86ISD::VBROADCAST 0x5640f1fcaf90
try.c: 0x5640f1fcaf90: i32,ch = load<LD4[ConstantPool]> 0x5640f1ec4a30, 0x5640f1f74e20, undef:i64
try.c: 0x5640f1f74e20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5640f1f7ac00: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5640f1f7a280: i64 = undef
try.c: 0x5640f1fd7390: 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: 0x5640f1fd7260: i32 = Constant<0>
try.c: 0x5640f1fd7260: i32 = Constant<0>
try.c: 0x5640f1fd7260: i32 = Constant<0>
try.c: 0x5640f1fd7260: i32 = Constant<0>
try.c: 0x5640f1fd7260: i32 = Constant<0>
try.c: 0x5640f1fd7260: i32 = Constant<0>
try.c: 0x5640f1fd7260: i32 = Constant<0>
try.c: 0x5640f1fd7260: i32 = Constant<0>
try.c: 0x5640f1fd7260: 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: 0x55cc950c98c0: v4i64 = X86ISD::VTRUNC 0x55cc950c9790
try.c: 0x55cc950c9790: v16i32 = vselect 0x55cc950ad000, 0x55cc950325d0, 0x55cc950c9660
try.c: 0x55cc950ad000: v4i1 = X86ISD::PCMPGTM 0x55cc950a7930, 0x55cc950a34c0
try.c: 0x55cc950a7930: v4i64 = X86ISD::VBROADCAST 0x55cc95056870
try.c: 0x55cc95056870: i64,ch = load<LD8[%lsr.iv6971]> 0x55cc94fb89a0, 0x55cc9509ac70, undef:i64
try.c: 0x55cc9509ac70: i64,ch = CopyFromReg 0x55cc94fb89a0, Register:i64 %vreg50
try.c: 0x55cc950a3720: i64 = Register %vreg50
try.c: 0x55cc95030c40: i64 = undef
try.c: 0x55cc950a34c0: v4i64,ch = CopyFromReg 0x55cc94fb89a0, Register:v4i64 %vreg13
try.c: 0x55cc950a8180: v4i64 = Register %vreg13
try.c: 0x55cc950325d0: v16i32 = X86ISD::VBROADCAST 0x55cc950a7b90
try.c: 0x55cc950a7b90: i32,ch = load<LD4[ConstantPool]> 0x55cc94fb89a0, 0x55cc95055e50, undef:i64
try.c: 0x55cc95055e50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cc95091160: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cc95030c40: i64 = undef
try.c: 0x55cc950c9660: 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: 0x55cc950c9530: i32 = Constant<0>
try.c: 0x55cc950c9530: i32 = Constant<0>
try.c: 0x55cc950c9530: i32 = Constant<0>
try.c: 0x55cc950c9530: i32 = Constant<0>
try.c: 0x55cc950c9530: i32 = Constant<0>
try.c: 0x55cc950c9530: i32 = Constant<0>
try.c: 0x55cc950c9530: i32 = Constant<0>
try.c: 0x55cc950c9530: i32 = Constant<0>
try.c: 0x55cc950c9530: 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:sse
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: 0x557998b4e9f0: v4i64 = X86ISD::VTRUNC 0x557998b4e8c0
try.c: 0x557998b4e8c0: v16i32 = vselect 0x557998b373d0, 0x557998ad3ae0, 0x557998b4e790
try.c: 0x557998b373d0: v4i1 = X86ISD::PCMPGTM 0x557998b2ba50, 0x557998b275e0
try.c: 0x557998b2ba50: v4i64 = X86ISD::VBROADCAST 0x557998acce80
try.c: 0x557998acce80: i64,ch = load<LD8[%lsr.iv6971]> 0x557998a3c9d0, 0x557998b16ce0, undef:i64
try.c: 0x557998b16ce0: i64,ch = CopyFromReg 0x557998a3c9d0, Register:i64 %vreg50
try.c: 0x557998b27840: i64 = Register %vreg50
try.c: 0x557998ad2150: i64 = undef
try.c: 0x557998b275e0: v4i64,ch = CopyFromReg 0x557998a3c9d0, Register:v4i64 %vreg13
try.c: 0x557998b2c2a0: v4i64 = Register %vreg13
try.c: 0x557998ad3ae0: v16i32 = X86ISD::VBROADCAST 0x557998b2bcb0
try.c: 0x557998b2bcb0: i32,ch = load<LD4[ConstantPool]> 0x557998a3c9d0, 0x557998acc460, undef:i64
try.c: 0x557998acc460: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557998ac7840: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557998ad2150: i64 = undef
try.c: 0x557998b4e790: 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: 0x557998b4e660: i32 = Constant<0>
try.c: 0x557998b4e660: i32 = Constant<0>
try.c: 0x557998b4e660: i32 = Constant<0>
try.c: 0x557998b4e660: i32 = Constant<0>
try.c: 0x557998b4e660: i32 = Constant<0>
try.c: 0x557998b4e660: i32 = Constant<0>
try.c: 0x557998b4e660: i32 = Constant<0>
try.c: 0x557998b4e660: i32 = Constant<0>
try.c: 0x557998b4e660: 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:sse

Compiler output

Implementation: T:sse
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: 0x555f9e665b80: v4i64 = X86ISD::VTRUNC 0x555f9e665a50
try.c: 0x555f9e665a50: v16i32 = vselect 0x555f9e655440, 0x555f9e5e8300, 0x555f9e665920
try.c: 0x555f9e655440: v4i1 = X86ISD::PCMPGTM 0x555f9e64cfd0, 0x555f9e648b60
try.c: 0x555f9e64cfd0: v4i64 = X86ISD::VBROADCAST 0x555f9e5e87c0
try.c: 0x555f9e5e87c0: i64,ch = load<LD8[%lsr.iv6971]> 0x555f9e546a40, 0x555f9e5f8900, undef:i64
try.c: 0x555f9e5f8900: i64,ch = CopyFromReg 0x555f9e546a40, Register:i64 %vreg50
try.c: 0x555f9e648dc0: i64 = Register %vreg50
try.c: 0x555f9e5e5cb0: i64 = undef
try.c: 0x555f9e648b60: v4i64,ch = CopyFromReg 0x555f9e546a40, Register:v4i64 %vreg13
try.c: 0x555f9e64d820: v4i64 = Register %vreg13
try.c: 0x555f9e5e8300: v16i32 = X86ISD::VBROADCAST 0x555f9e64d230
try.c: 0x555f9e64d230: i32,ch = load<LD4[ConstantPool]> 0x555f9e546a40, 0x555f9e5f6ed0, undef:i64
try.c: 0x555f9e5f6ed0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555f9e5e6630: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555f9e5e5cb0: i64 = undef
try.c: 0x555f9e665920: 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: 0x555f9e6657f0: i32 = Constant<0>
try.c: 0x555f9e6657f0: i32 = Constant<0>
try.c: 0x555f9e6657f0: i32 = Constant<0>
try.c: 0x555f9e6657f0: i32 = Constant<0>
try.c: 0x555f9e6657f0: i32 = Constant<0>
try.c: 0x555f9e6657f0: i32 = Constant<0>
try.c: 0x555f9e6657f0: i32 = Constant<0>
try.c: 0x555f9e6657f0: i32 = Constant<0>
try.c: 0x555f9e6657f0: 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:sse

Compiler output

Implementation: T:sse
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: 0x5585651e2090: v4i64 = X86ISD::VTRUNC 0x5585651e1f60
try.c: 0x5585651e1f60: v16i32 = vselect 0x5585651dea70, 0x5585651798c0, 0x5585651e1e30
try.c: 0x5585651dea70: v4i1 = X86ISD::PCMPGTM 0x5585651d9e60, 0x5585651d59f0
try.c: 0x5585651d9e60: v4i64 = X86ISD::VBROADCAST 0x558565180c80
try.c: 0x558565180c80: i64,ch = load<LD8[%lsr.iv6971]> 0x5585650ea9a0, 0x5585651cc5c0, undef:i64
try.c: 0x5585651cc5c0: i64,ch = CopyFromReg 0x5585650ea9a0, Register:i64 %vreg50
try.c: 0x5585651d5c50: i64 = Register %vreg50
try.c: 0x558565182150: i64 = undef
try.c: 0x5585651d59f0: v4i64,ch = CopyFromReg 0x5585650ea9a0, Register:v4i64 %vreg13
try.c: 0x5585651da6b0: v4i64 = Register %vreg13
try.c: 0x5585651798c0: v16i32 = X86ISD::VBROADCAST 0x5585651da0c0
try.c: 0x5585651da0c0: i32,ch = load<LD4[ConstantPool]> 0x5585650ea9a0, 0x5585651687c0, undef:i64
try.c: 0x5585651687c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5585651a62e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558565182150: i64 = undef
try.c: 0x5585651e1e30: 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: 0x5585651e1d00: i32 = Constant<0>
try.c: 0x5585651e1d00: i32 = Constant<0>
try.c: 0x5585651e1d00: i32 = Constant<0>
try.c: 0x5585651e1d00: i32 = Constant<0>
try.c: 0x5585651e1d00: i32 = Constant<0>
try.c: 0x5585651e1d00: i32 = Constant<0>
try.c: 0x5585651e1d00: i32 = Constant<0>
try.c: 0x5585651e1d00: i32 = Constant<0>
try.c: 0x5585651e1d00: 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:sse

Compiler output

Implementation: T:sse
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
scream.c: scream.c:185:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: A = __builtin_ia32_pshufb128(table, t0);
scream.c: ^
scream.c: scream.c:186:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: C = __builtin_ia32_pshufb128(table, t1);
scream.c: ^
scream.c: scream.c:190:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: B = __builtin_ia32_pshufb128(table, t0);
scream.c: ^
scream.c: scream.c:191:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: D = __builtin_ia32_pshufb128(table, t1);
scream.c: ^
scream.c: scream.c:198:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: A ^= __builtin_ia32_pshufb128(table, in[0]);
scream.c: ^
scream.c: scream.c:199:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: C ^= __builtin_ia32_pshufb128(table, in[2]);
scream.c: ^
scream.c: scream.c:203:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: B ^= __builtin_ia32_pshufb128(table, in[0]);
scream.c: ^
scream.c: scream.c:204:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: D ^= __builtin_ia32_pshufb128(table, in[2]);
scream.c: ^
scream.c: scream.c:211:10: error: '__builtin_ia32_pshufb128' needs target feature ssse3
scream.c: ...

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