Implementation notes: amd64, cel02, crypto_hash/bash384

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: bash384
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1228013107 0 023058 800 736T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1464810202 0 019994 808 776T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1591010793 0 021951 832 776T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1609410673 0 021503 832 776T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1619011120 0 025407 832 808T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Checksum failure

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
5375eb5598e0761cfb8ba51fe71d22966f54da0039becf495a65d0f5ccc08558
Number of similar (compiler,implementation) pairs: 6, 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
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref

Compiler output

Implementation: T:avx2
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: 0x5580920cb000: v4i64 = X86ISD::VTRUNC 0x5580920caed0
try.c: 0x5580920caed0: v16i32 = vselect 0x5580920b6ae0, 0x558092055640, 0x5580920cada0
try.c: 0x5580920b6ae0: v4i1 = X86ISD::PCMPGTM 0x5580920b0680, 0x5580920ac210
try.c: 0x5580920b0680: v4i64 = X86ISD::VBROADCAST 0x55809205e710
try.c: 0x55809205e710: i64,ch = load<LD8[%lsr.iv6971]> 0x558091fc1950, 0x5580920a7070, undef:i64
try.c: 0x5580920a7070: i64,ch = CopyFromReg 0x558091fc1950, Register:i64 %vreg50
try.c: 0x5580920ac470: i64 = Register %vreg50
try.c: 0x558092053cb0: i64 = undef
try.c: 0x5580920ac210: v4i64,ch = CopyFromReg 0x558091fc1950, Register:v4i64 %vreg13
try.c: 0x5580920b0ed0: v4i64 = Register %vreg13
try.c: 0x558092055640: v16i32 = X86ISD::VBROADCAST 0x5580920b08e0
try.c: 0x5580920b08e0: i32,ch = load<LD4[ConstantPool]> 0x558091fc1950, 0x55809205dcf0, undef:i64
try.c: 0x55809205dcf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558092096470: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558092053cb0: i64 = undef
try.c: 0x5580920cada0: 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: 0x5580920cac70: i32 = Constant<0>
try.c: 0x5580920cac70: i32 = Constant<0>
try.c: 0x5580920cac70: i32 = Constant<0>
try.c: 0x5580920cac70: i32 = Constant<0>
try.c: 0x5580920cac70: i32 = Constant<0>
try.c: 0x5580920cac70: i32 = Constant<0>
try.c: 0x5580920cac70: i32 = Constant<0>
try.c: 0x5580920cac70: i32 = Constant<0>
try.c: 0x5580920cac70: 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:avx2

Compiler output

Implementation: T:avx2
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: 0x562b87760180: v4i64 = X86ISD::VTRUNC 0x562b87760050
try.c: 0x562b87760050: v16i32 = vselect 0x562b8774b4e0, 0x562b876e2760, 0x562b8775ff20
try.c: 0x562b8774b4e0: v4i1 = X86ISD::PCMPGTM 0x562b87747390, 0x562b87742760
try.c: 0x562b87747390: v4i64 = X86ISD::VBROADCAST 0x562b876e2c20
try.c: 0x562b876e2c20: i64,ch = load<LD8[%lsr.iv6971]> 0x562b87640a30, 0x562b876dc3a0, undef:i64
try.c: 0x562b876dc3a0: i64,ch = CopyFromReg 0x562b87640a30, Register:i64 %vreg50
try.c: 0x562b877429c0: i64 = Register %vreg50
try.c: 0x562b876bee90: i64 = undef
try.c: 0x562b87742760: v4i64,ch = CopyFromReg 0x562b87640a30, Register:v4i64 %vreg13
try.c: 0x562b87747be0: v4i64 = Register %vreg13
try.c: 0x562b876e2760: v16i32 = X86ISD::VBROADCAST 0x562b877475f0
try.c: 0x562b877475f0: i32,ch = load<LD4[ConstantPool]> 0x562b87640a30, 0x562b876f1780, undef:i64
try.c: 0x562b876f1780: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562b876bf810: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562b876bee90: i64 = undef
try.c: 0x562b8775ff20: 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: 0x562b8775fdf0: i32 = Constant<0>
try.c: 0x562b8775fdf0: i32 = Constant<0>
try.c: 0x562b8775fdf0: i32 = Constant<0>
try.c: 0x562b8775fdf0: i32 = Constant<0>
try.c: 0x562b8775fdf0: i32 = Constant<0>
try.c: 0x562b8775fdf0: i32 = Constant<0>
try.c: 0x562b8775fdf0: i32 = Constant<0>
try.c: 0x562b8775fdf0: i32 = Constant<0>
try.c: 0x562b8775fdf0: 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:avx2

Compiler output

Implementation: T:avx2
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: 0x55ceaea32230: v4i64 = X86ISD::VTRUNC 0x55ceaea32100
try.c: 0x55ceaea32100: v16i32 = vselect 0x55ceaea294f0, 0x55ceae9cef10, 0x55ceaea31fd0
try.c: 0x55ceaea294f0: v4i1 = X86ISD::PCMPGTM 0x55ceaea264c0, 0x55ceaea22050
try.c: 0x55ceaea264c0: v4i64 = X86ISD::VBROADCAST 0x55ceae9e4f20
try.c: 0x55ceae9e4f20: i64,ch = load<LD8[%lsr.iv6971]> 0x55ceae937920, 0x55ceaea0f460, undef:i64
try.c: 0x55ceaea0f460: i64,ch = CopyFromReg 0x55ceae937920, Register:i64 %vreg50
try.c: 0x55ceaea222b0: i64 = Register %vreg50
try.c: 0x55ceae9cd580: i64 = undef
try.c: 0x55ceaea22050: v4i64,ch = CopyFromReg 0x55ceae937920, Register:v4i64 %vreg13
try.c: 0x55ceaea26d10: v4i64 = Register %vreg13
try.c: 0x55ceae9cef10: v16i32 = X86ISD::VBROADCAST 0x55ceaea26720
try.c: 0x55ceaea26720: i32,ch = load<LD4[ConstantPool]> 0x55ceae937920, 0x55ceae9e4500, undef:i64
try.c: 0x55ceae9e4500: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ceaea11640: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ceae9cd580: i64 = undef
try.c: 0x55ceaea31fd0: 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: 0x55ceaea31ea0: i32 = Constant<0>
try.c: 0x55ceaea31ea0: i32 = Constant<0>
try.c: 0x55ceaea31ea0: i32 = Constant<0>
try.c: 0x55ceaea31ea0: i32 = Constant<0>
try.c: 0x55ceaea31ea0: i32 = Constant<0>
try.c: 0x55ceaea31ea0: i32 = Constant<0>
try.c: 0x55ceaea31ea0: i32 = Constant<0>
try.c: 0x55ceaea31ea0: i32 = Constant<0>
try.c: 0x55ceaea31ea0: 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:avx2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bash_avx2.c: bash_avx2.c:70:2: error: "The compiler does not support AVX2 intrinsics."
bash_avx2.c: #error "The compiler does not support AVX2 intrinsics."
bash_avx2.c: ^
bash_avx2.c: bash_avx2.c:271:5: error: use of undeclared identifier 'u256'
bash_avx2.c: u256 S1,S2,T0,T1,T2,U0,U1,U2;
bash_avx2.c: ^
bash_avx2.c: bash_avx2.c:272:5: error: use of undeclared identifier 'u256'
bash_avx2.c: u256 W0 = LOADW( S + 0 );
bash_avx2.c: ^
bash_avx2.c: bash_avx2.c:273:5: error: use of undeclared identifier 'u256'
bash_avx2.c: u256 W1 = LOADW( S + 4 );
bash_avx2.c: ^
bash_avx2.c: bash_avx2.c:274:5: error: use of undeclared identifier 'u256'
bash_avx2.c: u256 W2 = LOADW( S + 8 );
bash_avx2.c: ^
bash_avx2.c: bash_avx2.c:275:5: error: use of undeclared identifier 'u256'
bash_avx2.c: u256 W3 = LOADW( S + 12 );
bash_avx2.c: ^
bash_avx2.c: bash_avx2.c:276:5: error: use of undeclared identifier 'u256'
bash_avx2.c: u256 W4 = LOADW( S + 16 );
bash_avx2.c: ^
bash_avx2.c: bash_avx2.c:277:5: error: use of undeclared identifier 'u256'
bash_avx2.c: u256 W5 = LOADW( S + 20 );
bash_avx2.c: ^
bash_avx2.c: bash_avx2.c:279:34: error: use of undeclared identifier 'S2'
bash_avx2.c: ...

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

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: 0x55610ae7c2f0: v4i64 = X86ISD::VTRUNC 0x55610ae7c1c0
try.c: 0x55610ae7c1c0: v16i32 = vselect 0x55610ae988f0, 0x55610ae1cb10, 0x55610ae7c090
try.c: 0x55610ae988f0: v4i1 = X86ISD::PCMPGTM 0x55610ae75970, 0x55610ae71500
try.c: 0x55610ae75970: v4i64 = X86ISD::VBROADCAST 0x55610ae15b10
try.c: 0x55610ae15b10: i64,ch = load<LD8[%lsr.iv6971]> 0x55610ad86930, 0x55610ae6c360, undef:i64
try.c: 0x55610ae6c360: i64,ch = CopyFromReg 0x55610ad86930, Register:i64 %vreg50
try.c: 0x55610ae71760: i64 = Register %vreg50
try.c: 0x55610ae16fe0: i64 = undef
try.c: 0x55610ae71500: v4i64,ch = CopyFromReg 0x55610ad86930, Register:v4i64 %vreg13
try.c: 0x55610ae761c0: v4i64 = Register %vreg13
try.c: 0x55610ae1cb10: v16i32 = X86ISD::VBROADCAST 0x55610ae75bd0
try.c: 0x55610ae75bd0: i32,ch = load<LD4[ConstantPool]> 0x55610ad86930, 0x55610ae150f0, undef:i64
try.c: 0x55610ae150f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55610ae30b00: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55610ae16fe0: i64 = undef
try.c: 0x55610ae7c090: 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: 0x55610ae7bf60: i32 = Constant<0>
try.c: 0x55610ae7bf60: i32 = Constant<0>
try.c: 0x55610ae7bf60: i32 = Constant<0>
try.c: 0x55610ae7bf60: i32 = Constant<0>
try.c: 0x55610ae7bf60: i32 = Constant<0>
try.c: 0x55610ae7bf60: i32 = Constant<0>
try.c: 0x55610ae7bf60: i32 = Constant<0>
try.c: 0x55610ae7bf60: i32 = Constant<0>
try.c: 0x55610ae7bf60: 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: 0x565267cc57d0: v4i64 = X86ISD::VTRUNC 0x565267cc56a0
try.c: 0x565267cc56a0: v16i32 = vselect 0x565267cc01a0, 0x565267c42ee0, 0x565267cc5570
try.c: 0x565267cc01a0: v4i1 = X86ISD::PCMPGTM 0x565267cac010, 0x565267ca7590
try.c: 0x565267cac010: v4i64 = X86ISD::VBROADCAST 0x565267c433a0
try.c: 0x565267c433a0: i64,ch = load<LD8[%lsr.iv6971]> 0x565267ba5a00, 0x565267c4d150, undef:i64
try.c: 0x565267c4d150: i64,ch = CopyFromReg 0x565267ba5a00, Register:i64 %vreg50
try.c: 0x565267ca77f0: i64 = Register %vreg50
try.c: 0x565267c3a6b0: i64 = undef
try.c: 0x565267ca7590: v4i64,ch = CopyFromReg 0x565267ba5a00, Register:v4i64 %vreg13
try.c: 0x565267cac860: v4i64 = Register %vreg13
try.c: 0x565267c42ee0: v16i32 = X86ISD::VBROADCAST 0x565267cac270
try.c: 0x565267cac270: i32,ch = load<LD4[ConstantPool]> 0x565267ba5a00, 0x565267c4b720, undef:i64
try.c: 0x565267c4b720: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x565267c3b030: i64 = TargetConstantPool<i32 1> 0
try.c: 0x565267c3a6b0: i64 = undef
try.c: 0x565267cc5570: 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: 0x565267cc5440: i32 = Constant<0>
try.c: 0x565267cc5440: i32 = Constant<0>
try.c: 0x565267cc5440: i32 = Constant<0>
try.c: 0x565267cc5440: i32 = Constant<0>
try.c: 0x565267cc5440: i32 = Constant<0>
try.c: 0x565267cc5440: i32 = Constant<0>
try.c: 0x565267cc5440: i32 = Constant<0>
try.c: 0x565267cc5440: i32 = Constant<0>
try.c: 0x565267cc5440: 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: 0x5601b326ed40: v4i64 = X86ISD::VTRUNC 0x5601b326ec10
try.c: 0x5601b326ec10: v16i32 = vselect 0x5601b326a310, 0x5601b322dfd0, 0x5601b326eae0
try.c: 0x5601b326a310: v4i1 = X86ISD::PCMPGTM 0x5601b3266ae0, 0x5601b3262670
try.c: 0x5601b3266ae0: v4i64 = X86ISD::VBROADCAST 0x5601b320d810
try.c: 0x5601b320d810: i64,ch = load<LD8[%lsr.iv6971]> 0x5601b31778d0, 0x5601b3250230, undef:i64
try.c: 0x5601b3250230: i64,ch = CopyFromReg 0x5601b31778d0, Register:i64 %vreg50
try.c: 0x5601b32628d0: i64 = Register %vreg50
try.c: 0x5601b322c640: i64 = undef
try.c: 0x5601b3262670: v4i64,ch = CopyFromReg 0x5601b31778d0, Register:v4i64 %vreg13
try.c: 0x5601b3267330: v4i64 = Register %vreg13
try.c: 0x5601b322dfd0: v16i32 = X86ISD::VBROADCAST 0x5601b3266d40
try.c: 0x5601b3266d40: i32,ch = load<LD4[ConstantPool]> 0x5601b31778d0, 0x5601b320cdf0, undef:i64
try.c: 0x5601b320cdf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5601b3251d60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5601b322c640: i64 = undef
try.c: 0x5601b326eae0: 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: 0x5601b326e9b0: i32 = Constant<0>
try.c: 0x5601b326e9b0: i32 = Constant<0>
try.c: 0x5601b326e9b0: i32 = Constant<0>
try.c: 0x5601b326e9b0: i32 = Constant<0>
try.c: 0x5601b326e9b0: i32 = Constant<0>
try.c: 0x5601b326e9b0: i32 = Constant<0>
try.c: 0x5601b326e9b0: i32 = Constant<0>
try.c: 0x5601b326e9b0: i32 = Constant<0>
try.c: 0x5601b326e9b0: 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