Implementation notes: amd64, cel02, crypto_hash/bash256

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

Checksum failure

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
e8496f7c0a80f87022012d0e76a2ba92f75dbac914504b74b4def5f0e9ec0be8
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: 0x55ed64fb9f80: v4i64 = X86ISD::VTRUNC 0x55ed64fb9e50
try.c: 0x55ed64fb9e50: v16i32 = vselect 0x55ed64fabd80, 0x55ed64f61bc0, 0x55ed64fb9d20
try.c: 0x55ed64fabd80: v4i1 = X86ISD::PCMPGTM 0x55ed64fb3950, 0x55ed64faf4e0
try.c: 0x55ed64fb3950: v4i64 = X86ISD::VBROADCAST 0x55ed64f524a0
try.c: 0x55ed64f524a0: i64,ch = load<LD8[%lsr.iv6971]> 0x55ed64ec4950, 0x55ed64f9d5b0, undef:i64
try.c: 0x55ed64f9d5b0: i64,ch = CopyFromReg 0x55ed64ec4950, Register:i64 %vreg50
try.c: 0x55ed64faf740: i64 = Register %vreg50
try.c: 0x55ed64f53970: i64 = undef
try.c: 0x55ed64faf4e0: v4i64,ch = CopyFromReg 0x55ed64ec4950, Register:v4i64 %vreg13
try.c: 0x55ed64fb41a0: v4i64 = Register %vreg13
try.c: 0x55ed64f61bc0: v16i32 = X86ISD::VBROADCAST 0x55ed64fb3bb0
try.c: 0x55ed64fb3bb0: i32,ch = load<LD4[ConstantPool]> 0x55ed64ec4950, 0x55ed64f5e3a0, undef:i64
try.c: 0x55ed64f5e3a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ed64f9e7b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ed64f53970: i64 = undef
try.c: 0x55ed64fb9d20: 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: 0x55ed64fb9bf0: i32 = Constant<0>
try.c: 0x55ed64fb9bf0: i32 = Constant<0>
try.c: 0x55ed64fb9bf0: i32 = Constant<0>
try.c: 0x55ed64fb9bf0: i32 = Constant<0>
try.c: 0x55ed64fb9bf0: i32 = Constant<0>
try.c: 0x55ed64fb9bf0: i32 = Constant<0>
try.c: 0x55ed64fb9bf0: i32 = Constant<0>
try.c: 0x55ed64fb9bf0: i32 = Constant<0>
try.c: 0x55ed64fb9bf0: 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: 0x55cbc36ca4e0: v4i64 = X86ISD::VTRUNC 0x55cbc36ca3b0
try.c: 0x55cbc36ca3b0: v16i32 = vselect 0x55cbc36b1d80, 0x55cbc3641190, 0x55cbc36ca280
try.c: 0x55cbc36b1d80: v4i1 = X86ISD::PCMPGTM 0x55cbc36a6f40, 0x55cbc36a2ad0
try.c: 0x55cbc36a6f40: v4i64 = X86ISD::VBROADCAST 0x55cbc3641650
try.c: 0x55cbc3641650: i64,ch = load<LD8[%lsr.iv6971]> 0x55cbc35a0a40, 0x55cbc3651020, undef:i64
try.c: 0x55cbc3651020: i64,ch = CopyFromReg 0x55cbc35a0a40, Register:i64 %vreg50
try.c: 0x55cbc36a2d30: i64 = Register %vreg50
try.c: 0x55cbc363fa80: i64 = undef
try.c: 0x55cbc36a2ad0: v4i64,ch = CopyFromReg 0x55cbc35a0a40, Register:v4i64 %vreg13
try.c: 0x55cbc36a7790: v4i64 = Register %vreg13
try.c: 0x55cbc3641190: v16i32 = X86ISD::VBROADCAST 0x55cbc36a71a0
try.c: 0x55cbc36a71a0: i32,ch = load<LD4[ConstantPool]> 0x55cbc35a0a40, 0x55cbc3643b30, undef:i64
try.c: 0x55cbc3643b30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cbc3640400: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cbc363fa80: i64 = undef
try.c: 0x55cbc36ca280: 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: 0x55cbc36ca150: i32 = Constant<0>
try.c: 0x55cbc36ca150: i32 = Constant<0>
try.c: 0x55cbc36ca150: i32 = Constant<0>
try.c: 0x55cbc36ca150: i32 = Constant<0>
try.c: 0x55cbc36ca150: i32 = Constant<0>
try.c: 0x55cbc36ca150: i32 = Constant<0>
try.c: 0x55cbc36ca150: i32 = Constant<0>
try.c: 0x55cbc36ca150: i32 = Constant<0>
try.c: 0x55cbc36ca150: 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: 0x55b2e8586340: v4i64 = X86ISD::VTRUNC 0x55b2e8586210
try.c: 0x55b2e8586210: v16i32 = vselect 0x55b2e8584930, 0x55b2e85281c0, 0x55b2e85860e0
try.c: 0x55b2e8584930: v4i1 = X86ISD::PCMPGTM 0x55b2e8581900, 0x55b2e857d490
try.c: 0x55b2e8581900: v4i64 = X86ISD::VBROADCAST 0x55b2e8520500
try.c: 0x55b2e8520500: i64,ch = load<LD8[%lsr.iv6971]> 0x55b2e8492920, 0x55b2e856b670, undef:i64
try.c: 0x55b2e856b670: i64,ch = CopyFromReg 0x55b2e8492920, Register:i64 %vreg50
try.c: 0x55b2e857d6f0: i64 = Register %vreg50
try.c: 0x55b2e85219d0: i64 = undef
try.c: 0x55b2e857d490: v4i64,ch = CopyFromReg 0x55b2e8492920, Register:v4i64 %vreg13
try.c: 0x55b2e8582150: v4i64 = Register %vreg13
try.c: 0x55b2e85281c0: v16i32 = X86ISD::VBROADCAST 0x55b2e8581b60
try.c: 0x55b2e8581b60: i32,ch = load<LD4[ConstantPool]> 0x55b2e8492920, 0x55b2e8525750, undef:i64
try.c: 0x55b2e8525750: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b2e8566d50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b2e85219d0: i64 = undef
try.c: 0x55b2e85860e0: 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: 0x55b2e8585fb0: i32 = Constant<0>
try.c: 0x55b2e8585fb0: i32 = Constant<0>
try.c: 0x55b2e8585fb0: i32 = Constant<0>
try.c: 0x55b2e8585fb0: i32 = Constant<0>
try.c: 0x55b2e8585fb0: i32 = Constant<0>
try.c: 0x55b2e8585fb0: i32 = Constant<0>
try.c: 0x55b2e8585fb0: i32 = Constant<0>
try.c: 0x55b2e8585fb0: i32 = Constant<0>
try.c: 0x55b2e8585fb0: 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: 0x55b97d5a00e0: v4i64 = X86ISD::VTRUNC 0x55b97d59ffb0
try.c: 0x55b97d59ffb0: v16i32 = vselect 0x55b97d5b3a80, 0x55b97d52dde0, 0x55b97d59fe80
try.c: 0x55b97d5b3a80: v4i1 = X86ISD::PCMPGTM 0x55b97d59bac0, 0x55b97d597650
try.c: 0x55b97d59bac0: v4i64 = X86ISD::VBROADCAST 0x55b97d547fa0
try.c: 0x55b97d547fa0: i64,ch = load<LD8[%lsr.iv6971]> 0x55b97d4ad8f0, 0x55b97d53dc80, undef:i64
try.c: 0x55b97d53dc80: i64,ch = CopyFromReg 0x55b97d4ad8f0, Register:i64 %vreg50
try.c: 0x55b97d5978b0: i64 = Register %vreg50
try.c: 0x55b97d52c450: i64 = undef
try.c: 0x55b97d597650: v4i64,ch = CopyFromReg 0x55b97d4ad8f0, Register:v4i64 %vreg13
try.c: 0x55b97d59c310: v4i64 = Register %vreg13
try.c: 0x55b97d52dde0: v16i32 = X86ISD::VBROADCAST 0x55b97d59bd20
try.c: 0x55b97d59bd20: i32,ch = load<LD4[ConstantPool]> 0x55b97d4ad8f0, 0x55b97d547580, undef:i64
try.c: 0x55b97d547580: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b97d594d40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b97d52c450: i64 = undef
try.c: 0x55b97d59fe80: 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: 0x55b97d59fd50: i32 = Constant<0>
try.c: 0x55b97d59fd50: i32 = Constant<0>
try.c: 0x55b97d59fd50: i32 = Constant<0>
try.c: 0x55b97d59fd50: i32 = Constant<0>
try.c: 0x55b97d59fd50: i32 = Constant<0>
try.c: 0x55b97d59fd50: i32 = Constant<0>
try.c: 0x55b97d59fd50: i32 = Constant<0>
try.c: 0x55b97d59fd50: i32 = Constant<0>
try.c: 0x55b97d59fd50: 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: 0x556a2a4aa780: v4i64 = X86ISD::VTRUNC 0x556a2a4aa650
try.c: 0x556a2a4aa650: v16i32 = vselect 0x556a2a4bd320, 0x556a2a442fc0, 0x556a2a4aa520
try.c: 0x556a2a4bd320: v4i1 = X86ISD::PCMPGTM 0x556a2a4a3140, 0x556a2a49ecd0
try.c: 0x556a2a4a3140: v4i64 = X86ISD::VBROADCAST 0x556a2a443480
try.c: 0x556a2a443480: i64,ch = load<LD8[%lsr.iv6971]> 0x556a2a39ca00, 0x556a2a437190, undef:i64
try.c: 0x556a2a437190: i64,ch = CopyFromReg 0x556a2a39ca00, Register:i64 %vreg50
try.c: 0x556a2a49ef30: i64 = Register %vreg50
try.c: 0x556a2a439ca0: i64 = undef
try.c: 0x556a2a49ecd0: v4i64,ch = CopyFromReg 0x556a2a39ca00, Register:v4i64 %vreg13
try.c: 0x556a2a4a3990: v4i64 = Register %vreg13
try.c: 0x556a2a442fc0: v16i32 = X86ISD::VBROADCAST 0x556a2a4a33a0
try.c: 0x556a2a4a33a0: i32,ch = load<LD4[ConstantPool]> 0x556a2a39ca00, 0x556a2a445960, undef:i64
try.c: 0x556a2a445960: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556a2a43a620: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556a2a439ca0: i64 = undef
try.c: 0x556a2a4aa520: 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: 0x556a2a4aa3f0: i32 = Constant<0>
try.c: 0x556a2a4aa3f0: i32 = Constant<0>
try.c: 0x556a2a4aa3f0: i32 = Constant<0>
try.c: 0x556a2a4aa3f0: i32 = Constant<0>
try.c: 0x556a2a4aa3f0: i32 = Constant<0>
try.c: 0x556a2a4aa3f0: i32 = Constant<0>
try.c: 0x556a2a4aa3f0: i32 = Constant<0>
try.c: 0x556a2a4aa3f0: i32 = Constant<0>
try.c: 0x556a2a4aa3f0: 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: 0x56119785c070: v4i64 = X86ISD::VTRUNC 0x56119785bf40
try.c: 0x56119785bf40: v16i32 = vselect 0x56119787a910, 0x561197810a00, 0x56119785be10
try.c: 0x56119787a910: v4i1 = X86ISD::PCMPGTM 0x561197857a50, 0x5611978535e0
try.c: 0x561197857a50: v4i64 = X86ISD::VBROADCAST 0x5611977fddf0
try.c: 0x5611977fddf0: i64,ch = load<LD8[%lsr.iv6971]> 0x561197768920, 0x56119784e440, undef:i64
try.c: 0x56119784e440: i64,ch = CopyFromReg 0x561197768920, Register:i64 %vreg50
try.c: 0x561197853840: i64 = Register %vreg50
try.c: 0x5611977ff2c0: i64 = undef
try.c: 0x5611978535e0: v4i64,ch = CopyFromReg 0x561197768920, Register:v4i64 %vreg13
try.c: 0x5611978582a0: v4i64 = Register %vreg13
try.c: 0x561197810a00: v16i32 = X86ISD::VBROADCAST 0x561197857cb0
try.c: 0x561197857cb0: i32,ch = load<LD4[ConstantPool]> 0x561197768920, 0x5611977fd3d0, undef:i64
try.c: 0x5611977fd3d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56119784b070: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5611977ff2c0: i64 = undef
try.c: 0x56119785be10: 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: 0x56119785bce0: i32 = Constant<0>
try.c: 0x56119785bce0: i32 = Constant<0>
try.c: 0x56119785bce0: i32 = Constant<0>
try.c: 0x56119785bce0: i32 = Constant<0>
try.c: 0x56119785bce0: i32 = Constant<0>
try.c: 0x56119785bce0: i32 = Constant<0>
try.c: 0x56119785bce0: i32 = Constant<0>
try.c: 0x56119785bce0: i32 = Constant<0>
try.c: 0x56119785bce0: 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