Implementation notes: amd64, cel02, crypto_aead/scream12v1

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: scream12v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
8917023375 0 047629 824 960T:ssegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11103414078 0 032604 792 856T:sseclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
14598413707 0 034725 824 896T:ssegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
15869013734 0 034245 824 896T:ssegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
15895411392 0 030376 800 896T:ssegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
6408449271 0 033365 824 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
7194905798 0 024180 792 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
8192868671 0 028882 800 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
9170846897 0 027797 824 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
9928426477 0 026901 824 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
10571005961 0 024832 800 896T:refgcc_-march=native_-mtune=native_-Os_-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: 0x563277c211c0: v4i64 = X86ISD::VTRUNC 0x563277c21090
try.c: 0x563277c21090: v16i32 = vselect 0x563277c01c90, 0x563277baeec0, 0x563277c20f60
try.c: 0x563277c01c90: v4i1 = X86ISD::PCMPGTM 0x563277c09860, 0x563277c053f0
try.c: 0x563277c09860: v4i64 = X86ISD::VBROADCAST 0x563277bb12b0
try.c: 0x563277bb12b0: i64,ch = load<LD8[%lsr.iv6971]> 0x563277b1a950, 0x563277bf8250, undef:i64
try.c: 0x563277bf8250: i64,ch = CopyFromReg 0x563277b1a950, Register:i64 %vreg50
try.c: 0x563277c05650: i64 = Register %vreg50
try.c: 0x563277bad530: i64 = undef
try.c: 0x563277c053f0: v4i64,ch = CopyFromReg 0x563277b1a950, Register:v4i64 %vreg13
try.c: 0x563277c0a0b0: v4i64 = Register %vreg13
try.c: 0x563277baeec0: v16i32 = X86ISD::VBROADCAST 0x563277c09ac0
try.c: 0x563277c09ac0: i32,ch = load<LD4[ConstantPool]> 0x563277b1a950, 0x563277bb0890, undef:i64
try.c: 0x563277bb0890: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563277ba5330: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563277bad530: i64 = undef
try.c: 0x563277c20f60: 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: 0x563277c20e30: i32 = Constant<0>
try.c: 0x563277c20e30: i32 = Constant<0>
try.c: 0x563277c20e30: i32 = Constant<0>
try.c: 0x563277c20e30: i32 = Constant<0>
try.c: 0x563277c20e30: i32 = Constant<0>
try.c: 0x563277c20e30: i32 = Constant<0>
try.c: 0x563277c20e30: i32 = Constant<0>
try.c: 0x563277c20e30: i32 = Constant<0>
try.c: 0x563277c20e30: 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: 0x55cd1e305a80: v4i64 = X86ISD::VTRUNC 0x55cd1e305950
try.c: 0x55cd1e305950: v16i32 = vselect 0x55cd1e300450, 0x55cd1e2999a0, 0x55cd1e305820
try.c: 0x55cd1e300450: v4i1 = X86ISD::PCMPGTM 0x55cd1e2ea270, 0x55cd1e2e6c50
try.c: 0x55cd1e2ea270: v4i64 = X86ISD::VBROADCAST 0x55cd1e299e60
try.c: 0x55cd1e299e60: i64,ch = load<LD8[%lsr.iv6971]> 0x55cd1e1e4a30, 0x55cd1e28c540, undef:i64
try.c: 0x55cd1e28c540: i64,ch = CopyFromReg 0x55cd1e1e4a30, Register:i64 %vreg50
try.c: 0x55cd1e2e6eb0: i64 = Register %vreg50
try.c: 0x55cd1e283f70: i64 = undef
try.c: 0x55cd1e2e6c50: v4i64,ch = CopyFromReg 0x55cd1e1e4a30, Register:v4i64 %vreg13
try.c: 0x55cd1e2eaac0: v4i64 = Register %vreg13
try.c: 0x55cd1e2999a0: v16i32 = X86ISD::VBROADCAST 0x55cd1e2ea4d0
try.c: 0x55cd1e2ea4d0: i32,ch = load<LD4[ConstantPool]> 0x55cd1e1e4a30, 0x55cd1e28ab10, undef:i64
try.c: 0x55cd1e28ab10: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cd1e2848f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cd1e283f70: i64 = undef
try.c: 0x55cd1e305820: 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: 0x55cd1e3056f0: i32 = Constant<0>
try.c: 0x55cd1e3056f0: i32 = Constant<0>
try.c: 0x55cd1e3056f0: i32 = Constant<0>
try.c: 0x55cd1e3056f0: i32 = Constant<0>
try.c: 0x55cd1e3056f0: i32 = Constant<0>
try.c: 0x55cd1e3056f0: i32 = Constant<0>
try.c: 0x55cd1e3056f0: i32 = Constant<0>
try.c: 0x55cd1e3056f0: i32 = Constant<0>
try.c: 0x55cd1e3056f0: 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: 0x55b6f1504240: v4i64 = X86ISD::VTRUNC 0x55b6f1504110
try.c: 0x55b6f1504110: v16i32 = vselect 0x55b6f14f0630, 0x55b6f14a4110, 0x55b6f1503fe0
try.c: 0x55b6f14f0630: v4i1 = X86ISD::PCMPGTM 0x55b6f14e9a70, 0x55b6f14e5600
try.c: 0x55b6f14e9a70: v4i64 = X86ISD::VBROADCAST 0x55b6f148ad40
try.c: 0x55b6f148ad40: i64,ch = load<LD8[%lsr.iv6971]> 0x55b6f13fa950, 0x55b6f14a7b90, undef:i64
try.c: 0x55b6f14a7b90: i64,ch = CopyFromReg 0x55b6f13fa950, Register:i64 %vreg50
try.c: 0x55b6f14e5860: i64 = Register %vreg50
try.c: 0x55b6f14a2780: i64 = undef
try.c: 0x55b6f14e5600: v4i64,ch = CopyFromReg 0x55b6f13fa950, Register:v4i64 %vreg13
try.c: 0x55b6f14ea2c0: v4i64 = Register %vreg13
try.c: 0x55b6f14a4110: v16i32 = X86ISD::VBROADCAST 0x55b6f14e9cd0
try.c: 0x55b6f14e9cd0: i32,ch = load<LD4[ConstantPool]> 0x55b6f13fa950, 0x55b6f148a320, undef:i64
try.c: 0x55b6f148a320: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b6f14ca3f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b6f14a2780: i64 = undef
try.c: 0x55b6f1503fe0: 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: 0x55b6f1503eb0: i32 = Constant<0>
try.c: 0x55b6f1503eb0: i32 = Constant<0>
try.c: 0x55b6f1503eb0: i32 = Constant<0>
try.c: 0x55b6f1503eb0: i32 = Constant<0>
try.c: 0x55b6f1503eb0: i32 = Constant<0>
try.c: 0x55b6f1503eb0: i32 = Constant<0>
try.c: 0x55b6f1503eb0: i32 = Constant<0>
try.c: 0x55b6f1503eb0: i32 = Constant<0>
try.c: 0x55b6f1503eb0: 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: 0x563da0c74aa0: v4i64 = X86ISD::VTRUNC 0x563da0c74970
try.c: 0x563da0c74970: v16i32 = vselect 0x563da0c71480, 0x563da0c0dee0, 0x563da0c74840
try.c: 0x563da0c71480: v4i1 = X86ISD::PCMPGTM 0x563da0c6c860, 0x563da0c683f0
try.c: 0x563da0c6c860: v4i64 = X86ISD::VBROADCAST 0x563da0c0b080
try.c: 0x563da0c0b080: i64,ch = load<LD8[%lsr.iv6971]> 0x563da0b7d950, 0x563da0c306b0, undef:i64
try.c: 0x563da0c306b0: i64,ch = CopyFromReg 0x563da0b7d950, Register:i64 %vreg50
try.c: 0x563da0c68650: i64 = Register %vreg50
try.c: 0x563da0c0c550: i64 = undef
try.c: 0x563da0c683f0: v4i64,ch = CopyFromReg 0x563da0b7d950, Register:v4i64 %vreg13
try.c: 0x563da0c6d0b0: v4i64 = Register %vreg13
try.c: 0x563da0c0dee0: v16i32 = X86ISD::VBROADCAST 0x563da0c6cac0
try.c: 0x563da0c6cac0: i32,ch = load<LD4[ConstantPool]> 0x563da0b7d950, 0x563da0c11200, undef:i64
try.c: 0x563da0c11200: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563da0bfc4c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563da0c0c550: i64 = undef
try.c: 0x563da0c74840: 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: 0x563da0c74710: i32 = Constant<0>
try.c: 0x563da0c74710: i32 = Constant<0>
try.c: 0x563da0c74710: i32 = Constant<0>
try.c: 0x563da0c74710: i32 = Constant<0>
try.c: 0x563da0c74710: i32 = Constant<0>
try.c: 0x563da0c74710: i32 = Constant<0>
try.c: 0x563da0c74710: i32 = Constant<0>
try.c: 0x563da0c74710: i32 = Constant<0>
try.c: 0x563da0c74710: 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: 0x56234fb45a40: v4i64 = X86ISD::VTRUNC 0x56234fb45910
try.c: 0x56234fb45910: v16i32 = vselect 0x56234fb2dc70, 0x56234fada880, 0x56234fb457e0
try.c: 0x56234fb2dc70: v4i1 = X86ISD::PCMPGTM 0x56234fb2bc50, 0x56234fb277e0
try.c: 0x56234fb2bc50: v4i64 = X86ISD::VBROADCAST 0x56234fadad40
try.c: 0x56234fadad40: i64,ch = load<LD8[%lsr.iv6971]> 0x56234fa24a30, 0x56234fac06b0, undef:i64
try.c: 0x56234fac06b0: i64,ch = CopyFromReg 0x56234fa24a30, Register:i64 %vreg50
try.c: 0x56234fb27a40: i64 = Register %vreg50
try.c: 0x56234fad4370: i64 = undef
try.c: 0x56234fb277e0: v4i64,ch = CopyFromReg 0x56234fa24a30, Register:v4i64 %vreg13
try.c: 0x56234fb2c4a0: v4i64 = Register %vreg13
try.c: 0x56234fada880: v16i32 = X86ISD::VBROADCAST 0x56234fb2beb0
try.c: 0x56234fb2beb0: i32,ch = load<LD4[ConstantPool]> 0x56234fa24a30, 0x56234fabec80, undef:i64
try.c: 0x56234fabec80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56234fad4cf0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56234fad4370: i64 = undef
try.c: 0x56234fb457e0: 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: 0x56234fb456b0: i32 = Constant<0>
try.c: 0x56234fb456b0: i32 = Constant<0>
try.c: 0x56234fb456b0: i32 = Constant<0>
try.c: 0x56234fb456b0: i32 = Constant<0>
try.c: 0x56234fb456b0: i32 = Constant<0>
try.c: 0x56234fb456b0: i32 = Constant<0>
try.c: 0x56234fb456b0: i32 = Constant<0>
try.c: 0x56234fb456b0: i32 = Constant<0>
try.c: 0x56234fb456b0: 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: 0x5629c35f1390: v4i64 = X86ISD::VTRUNC 0x5629c35f1260
try.c: 0x5629c35f1260: v16i32 = vselect 0x5629c35daa40, 0x5629c3581970, 0x5629c35f1130
try.c: 0x5629c35daa40: v4i1 = X86ISD::PCMPGTM 0x5629c35d9a30, 0x5629c35d55c0
try.c: 0x5629c35d9a30: v4i64 = X86ISD::VBROADCAST 0x5629c3588640
try.c: 0x5629c3588640: i64,ch = load<LD8[%lsr.iv6971]> 0x5629c34ea950, 0x5629c35c7440, undef:i64
try.c: 0x5629c35c7440: i64,ch = CopyFromReg 0x5629c34ea950, Register:i64 %vreg50
try.c: 0x5629c35d5820: i64 = Register %vreg50
try.c: 0x5629c357ffe0: i64 = undef
try.c: 0x5629c35d55c0: v4i64,ch = CopyFromReg 0x5629c34ea950, Register:v4i64 %vreg13
try.c: 0x5629c35da280: v4i64 = Register %vreg13
try.c: 0x5629c3581970: v16i32 = X86ISD::VBROADCAST 0x5629c35d9c90
try.c: 0x5629c35d9c90: i32,ch = load<LD4[ConstantPool]> 0x5629c34ea950, 0x5629c3587c20, undef:i64
try.c: 0x5629c3587c20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5629c35c80e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5629c357ffe0: i64 = undef
try.c: 0x5629c35f1130: 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: 0x5629c35f1000: i32 = Constant<0>
try.c: 0x5629c35f1000: i32 = Constant<0>
try.c: 0x5629c35f1000: i32 = Constant<0>
try.c: 0x5629c35f1000: i32 = Constant<0>
try.c: 0x5629c35f1000: i32 = Constant<0>
try.c: 0x5629c35f1000: i32 = Constant<0>
try.c: 0x5629c35f1000: i32 = Constant<0>
try.c: 0x5629c35f1000: i32 = Constant<0>
try.c: 0x5629c35f1000: 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