Implementation notes: amd64, cel02, crypto_hash/bash512

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: bash512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2027410793 0 021951 832 776T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2098610202 0 019994 808 776T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2367210673 0 021503 832 776T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2453813107 0 023058 800 736T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2568611120 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
a397472ba7599635360cf4397e77b42145d47322e3ee531180b21ebf8e99930d
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: 0x5562b89d7350: v4i64 = X86ISD::VTRUNC 0x5562b89d7220
try.c: 0x5562b89d7220: v16i32 = vselect 0x5562b89cb4b0, 0x5562b895fab0, 0x5562b89d70f0
try.c: 0x5562b89cb4b0: v4i1 = X86ISD::PCMPGTM 0x5562b89bf9f0, 0x5562b89bb580
try.c: 0x5562b89bf9f0: v4i64 = X86ISD::VBROADCAST 0x5562b89638d0
try.c: 0x5562b89638d0: i64,ch = load<LD8[%lsr.iv6971]> 0x5562b88d0950, 0x5562b89b63e0, undef:i64
try.c: 0x5562b89b63e0: i64,ch = CopyFromReg 0x5562b88d0950, Register:i64 %vreg50
try.c: 0x5562b89bb7e0: i64 = Register %vreg50
try.c: 0x5562b895e120: i64 = undef
try.c: 0x5562b89bb580: v4i64,ch = CopyFromReg 0x5562b88d0950, Register:v4i64 %vreg13
try.c: 0x5562b89c0240: v4i64 = Register %vreg13
try.c: 0x5562b895fab0: v16i32 = X86ISD::VBROADCAST 0x5562b89bfc50
try.c: 0x5562b89bfc50: i32,ch = load<LD4[ConstantPool]> 0x5562b88d0950, 0x5562b8962eb0, undef:i64
try.c: 0x5562b8962eb0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5562b89b3640: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5562b895e120: i64 = undef
try.c: 0x5562b89d70f0: 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: 0x5562b89d6fc0: i32 = Constant<0>
try.c: 0x5562b89d6fc0: i32 = Constant<0>
try.c: 0x5562b89d6fc0: i32 = Constant<0>
try.c: 0x5562b89d6fc0: i32 = Constant<0>
try.c: 0x5562b89d6fc0: i32 = Constant<0>
try.c: 0x5562b89d6fc0: i32 = Constant<0>
try.c: 0x5562b89d6fc0: i32 = Constant<0>
try.c: 0x5562b89d6fc0: i32 = Constant<0>
try.c: 0x5562b89d6fc0: 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: 0x5568ff296300: v4i64 = X86ISD::VTRUNC 0x5568ff2961d0
try.c: 0x5568ff2961d0: v16i32 = vselect 0x5568ff276b70, 0x5568ff210de0, 0x5568ff2960a0
try.c: 0x5568ff276b70: v4i1 = X86ISD::PCMPGTM 0x5568ff271360, 0x5568ff26d8f0
try.c: 0x5568ff271360: v4i64 = X86ISD::VBROADCAST 0x5568ff2112a0
try.c: 0x5568ff2112a0: i64,ch = load<LD8[%lsr.iv6971]> 0x5568ff16ba30, 0x5568ff21a870, undef:i64
try.c: 0x5568ff21a870: i64,ch = CopyFromReg 0x5568ff16ba30, Register:i64 %vreg50
try.c: 0x5568ff26db50: i64 = Register %vreg50
try.c: 0x5568ff2045d0: i64 = undef
try.c: 0x5568ff26d8f0: v4i64,ch = CopyFromReg 0x5568ff16ba30, Register:v4i64 %vreg13
try.c: 0x5568ff271bb0: v4i64 = Register %vreg13
try.c: 0x5568ff210de0: v16i32 = X86ISD::VBROADCAST 0x5568ff2715c0
try.c: 0x5568ff2715c0: i32,ch = load<LD4[ConstantPool]> 0x5568ff16ba30, 0x5568ff213780, undef:i64
try.c: 0x5568ff213780: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5568ff204f50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5568ff2045d0: i64 = undef
try.c: 0x5568ff2960a0: 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: 0x5568ff295f70: i32 = Constant<0>
try.c: 0x5568ff295f70: i32 = Constant<0>
try.c: 0x5568ff295f70: i32 = Constant<0>
try.c: 0x5568ff295f70: i32 = Constant<0>
try.c: 0x5568ff295f70: i32 = Constant<0>
try.c: 0x5568ff295f70: i32 = Constant<0>
try.c: 0x5568ff295f70: i32 = Constant<0>
try.c: 0x5568ff295f70: i32 = Constant<0>
try.c: 0x5568ff295f70: 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: 0x563ec97481a0: v4i64 = X86ISD::VTRUNC 0x563ec9748070
try.c: 0x563ec9748070: v16i32 = vselect 0x563ec9744b80, 0x563ec96d43e0, 0x563ec9747f40
try.c: 0x563ec9744b80: v4i1 = X86ISD::PCMPGTM 0x563ec972d810, 0x563ec97293a0
try.c: 0x563ec972d810: v4i64 = X86ISD::VBROADCAST 0x563ec96f5d20
try.c: 0x563ec96f5d20: i64,ch = load<LD8[%lsr.iv6971]> 0x563ec963e900, 0x563ec96d6070, undef:i64
try.c: 0x563ec96d6070: i64,ch = CopyFromReg 0x563ec963e900, Register:i64 %vreg50
try.c: 0x563ec9729600: i64 = Register %vreg50
try.c: 0x563ec96f71f0: i64 = undef
try.c: 0x563ec97293a0: v4i64,ch = CopyFromReg 0x563ec963e900, Register:v4i64 %vreg13
try.c: 0x563ec972e060: v4i64 = Register %vreg13
try.c: 0x563ec96d43e0: v16i32 = X86ISD::VBROADCAST 0x563ec972da70
try.c: 0x563ec972da70: i32,ch = load<LD4[ConstantPool]> 0x563ec963e900, 0x563ec96d1970, undef:i64
try.c: 0x563ec96d1970: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563ec971c340: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563ec96f71f0: i64 = undef
try.c: 0x563ec9747f40: 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: 0x563ec9747e10: i32 = Constant<0>
try.c: 0x563ec9747e10: i32 = Constant<0>
try.c: 0x563ec9747e10: i32 = Constant<0>
try.c: 0x563ec9747e10: i32 = Constant<0>
try.c: 0x563ec9747e10: i32 = Constant<0>
try.c: 0x563ec9747e10: i32 = Constant<0>
try.c: 0x563ec9747e10: i32 = Constant<0>
try.c: 0x563ec9747e10: i32 = Constant<0>
try.c: 0x563ec9747e10: 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: 0x55c298c91810: v4i64 = X86ISD::VTRUNC 0x55c298c916e0
try.c: 0x55c298c916e0: v16i32 = vselect 0x55c298c8c1e0, 0x55c298c390f0, 0x55c298c915b0
try.c: 0x55c298c8c1e0: v4i1 = X86ISD::PCMPGTM 0x55c298c8b1d0, 0x55c298c86d60
try.c: 0x55c298c8b1d0: v4i64 = X86ISD::VBROADCAST 0x55c298c36290
try.c: 0x55c298c36290: i64,ch = load<LD8[%lsr.iv6971]> 0x55c298b9b9a0, 0x55c298c7d600, undef:i64
try.c: 0x55c298c7d600: i64,ch = CopyFromReg 0x55c298b9b9a0, Register:i64 %vreg50
try.c: 0x55c298c86fc0: i64 = Register %vreg50
try.c: 0x55c298c37760: i64 = undef
try.c: 0x55c298c86d60: v4i64,ch = CopyFromReg 0x55c298b9b9a0, Register:v4i64 %vreg13
try.c: 0x55c298c8ba20: v4i64 = Register %vreg13
try.c: 0x55c298c390f0: v16i32 = X86ISD::VBROADCAST 0x55c298c8b430
try.c: 0x55c298c8b430: i32,ch = load<LD4[ConstantPool]> 0x55c298b9b9a0, 0x55c298c35870, undef:i64
try.c: 0x55c298c35870: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c298c19d30: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c298c37760: i64 = undef
try.c: 0x55c298c915b0: 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: 0x55c298c91480: i32 = Constant<0>
try.c: 0x55c298c91480: i32 = Constant<0>
try.c: 0x55c298c91480: i32 = Constant<0>
try.c: 0x55c298c91480: i32 = Constant<0>
try.c: 0x55c298c91480: i32 = Constant<0>
try.c: 0x55c298c91480: i32 = Constant<0>
try.c: 0x55c298c91480: i32 = Constant<0>
try.c: 0x55c298c91480: i32 = Constant<0>
try.c: 0x55c298c91480: 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: 0x55deb7dbeb60: v4i64 = X86ISD::VTRUNC 0x55deb7dbea30
try.c: 0x55deb7dbea30: v16i32 = vselect 0x55deb7dbb540, 0x55deb7d4c9c0, 0x55deb7dbe900
try.c: 0x55deb7dbb540: v4i1 = X86ISD::PCMPGTM 0x55deb7db5540, 0x55deb7db1310
try.c: 0x55deb7db5540: v4i64 = X86ISD::VBROADCAST 0x55deb7d4ce80
try.c: 0x55deb7d4ce80: i64,ch = load<LD8[%lsr.iv6971]> 0x55deb7cafa00, 0x55deb7d4b120, undef:i64
try.c: 0x55deb7d4b120: i64,ch = CopyFromReg 0x55deb7cafa00, Register:i64 %vreg50
try.c: 0x55deb7db1570: i64 = Register %vreg50
try.c: 0x55deb7d45450: i64 = undef
try.c: 0x55deb7db1310: v4i64,ch = CopyFromReg 0x55deb7cafa00, Register:v4i64 %vreg13
try.c: 0x55deb7db5d90: v4i64 = Register %vreg13
try.c: 0x55deb7d4c9c0: v16i32 = X86ISD::VBROADCAST 0x55deb7db57a0
try.c: 0x55deb7db57a0: i32,ch = load<LD4[ConstantPool]> 0x55deb7cafa00, 0x55deb7d496f0, undef:i64
try.c: 0x55deb7d496f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55deb7d45dd0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55deb7d45450: i64 = undef
try.c: 0x55deb7dbe900: 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: 0x55deb7dbe7d0: i32 = Constant<0>
try.c: 0x55deb7dbe7d0: i32 = Constant<0>
try.c: 0x55deb7dbe7d0: i32 = Constant<0>
try.c: 0x55deb7dbe7d0: i32 = Constant<0>
try.c: 0x55deb7dbe7d0: i32 = Constant<0>
try.c: 0x55deb7dbe7d0: i32 = Constant<0>
try.c: 0x55deb7dbe7d0: i32 = Constant<0>
try.c: 0x55deb7dbe7d0: i32 = Constant<0>
try.c: 0x55deb7dbe7d0: 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: 0x5652ae372110: v4i64 = X86ISD::VTRUNC 0x5652ae371fe0
try.c: 0x5652ae371fe0: v16i32 = vselect 0x5652ae36cae0, 0x5652ae3191a0, 0x5652ae371eb0
try.c: 0x5652ae36cae0: v4i1 = X86ISD::PCMPGTM 0x5652ae36bad0, 0x5652ae367660
try.c: 0x5652ae36bad0: v4i64 = X86ISD::VBROADCAST 0x5652ae320420
try.c: 0x5652ae320420: i64,ch = load<LD8[%lsr.iv6971]> 0x5652ae27c900, 0x5652ae355990, undef:i64
try.c: 0x5652ae355990: i64,ch = CopyFromReg 0x5652ae27c900, Register:i64 %vreg50
try.c: 0x5652ae3678c0: i64 = Register %vreg50
try.c: 0x5652ae3218f0: i64 = undef
try.c: 0x5652ae367660: v4i64,ch = CopyFromReg 0x5652ae27c900, Register:v4i64 %vreg13
try.c: 0x5652ae36c320: v4i64 = Register %vreg13
try.c: 0x5652ae3191a0: v16i32 = X86ISD::VBROADCAST 0x5652ae36bd30
try.c: 0x5652ae36bd30: i32,ch = load<LD4[ConstantPool]> 0x5652ae27c900, 0x5652ae310400, undef:i64
try.c: 0x5652ae310400: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5652ae356b90: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5652ae3218f0: i64 = undef
try.c: 0x5652ae371eb0: 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: 0x5652ae371d80: i32 = Constant<0>
try.c: 0x5652ae371d80: i32 = Constant<0>
try.c: 0x5652ae371d80: i32 = Constant<0>
try.c: 0x5652ae371d80: i32 = Constant<0>
try.c: 0x5652ae371d80: i32 = Constant<0>
try.c: 0x5652ae371d80: i32 = Constant<0>
try.c: 0x5652ae371d80: i32 = Constant<0>
try.c: 0x5652ae371d80: i32 = Constant<0>
try.c: 0x5652ae371d80: 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