Implementation notes: amd64, oki, crypto_hash/md2

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_hash
Primitive: md2

Compiler output

Implementation: openssl
Security model: unknown
Compiler: cc
try.c: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: crypto_hash_md2.a(hash.o): in function `crypto_hash_md2_openssl':
try.c: hash.c:(.text+0x...): undefined reference to `MD2'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc openssl

Compiler output

Implementation: openssl
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
hash.c: hash.c:7:3: warning: implicit declaration of function 'MD2' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: MD2(in,inlen,out);
hash.c: ^
hash.c: 1 warning generated.
try.c: /usr/bin/ld: crypto_hash_md2.a(hash.o): in function `crypto_hash_md2_openssl':
try.c: hash.c:(.text+0x...): undefined reference to `MD2'
try.c: clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments openssl
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments openssl
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl

Compiler output

Implementation: openssl
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
hash.c: hash.c:7:3: warning: implicit declaration of function 'MD2' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: MD2(in,inlen,out);
hash.c: ^
hash.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x1d02120: v4i64 = X86ISD::VTRUNC 0x1d01f50
try.c: 0x1d01f50: v16i32 = vselect 0x1cdbe00, 0x1c8eb90, 0x1d01e20
try.c: 0x1cdbe00: v4i1 = X86ISD::PCMPGTM 0x1ce9a00, 0x1c8f940
try.c: 0x1ce9a00: v4i64 = X86ISD::VBROADCAST 0x1c8fcd0
try.c: 0x1c8fcd0: i64,ch = load<LD8[%uglygep72]> 0x1be4dd0, 0x1ca9ab0, undef:i64
try.c: 0x1ca9ab0: i64 = add 0x1cea8e0, 0x1c8a0e0
try.c: 0x1cea8e0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1cca690: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1c8a0e0: i64 = shl 0x1cc9e40, Constant:i8<3>
try.c: 0x1cc9e40: i64,ch = CopyFromReg 0x1be4dd0, Register:i64 %vreg50
try.c: 0x1ceada0: i64 = Register %vreg50
try.c: 0x1c945a0: i8 = Constant<3>
try.c: 0x1ce8070: i64 = undef
try.c: 0x1c8f940: v4i64,ch = CopyFromReg 0x1be4dd0, Register:v4i64 %vreg13
try.c: 0x1c85560: v4i64 = Register %vreg13
try.c: 0x1c8eb90: v16i32 = X86ISD::VBROADCAST 0x1cca0a0
try.c: 0x1cca0a0: i32,ch = load<LD4[ConstantPool]> 0x1be4dd0, 0x1d01a90, undef:i64
try.c: 0x1d01a90: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1c97b90: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1ce8070: i64 = undef
try.c: 0x1d01e20: 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: 0x1d01cf0: i32 = Constant<0>
try.c: 0x1d01cf0: i32 = Constant<0>
try.c: 0x1d01cf0: i32 = Constant<0>
try.c: 0x1d01cf0: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments openssl

Compiler output

Implementation: openssl
Security model: unknown
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:7:3: warning: implicit declaration of function 'MD2' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: MD2(in,inlen,out);
hash.c: ^
hash.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x22440b0: v4i64 = X86ISD::VTRUNC 0x2243ee0
try.c: 0x2243ee0: v16i32 = vselect 0x22321a0, 0x21c3630, 0x2243db0
try.c: 0x22321a0: v4i1 = X86ISD::PCMPGTM 0x222d9a0, 0x21c43e0
try.c: 0x222d9a0: v4i64 = X86ISD::VBROADCAST 0x21c4770
try.c: 0x21c4770: i64,ch = load<LD8[%uglygep72]> 0x2127dd0, 0x220d570, undef:i64
try.c: 0x220d570: i64 = add 0x222e880, 0x21dd010
try.c: 0x222e880: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x22141c0: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x21dd010: i64 = shl 0x2213970, Constant:i8<3>
try.c: 0x2213970: i64,ch = CopyFromReg 0x2127dd0, Register:i64 %vreg50
try.c: 0x222ed40: i64 = Register %vreg50
try.c: 0x21dee20: i8 = Constant<3>
try.c: 0x222c010: i64 = undef
try.c: 0x21c43e0: v4i64,ch = CopyFromReg 0x2127dd0, Register:v4i64 %vreg13
try.c: 0x21d83d0: v4i64 = Register %vreg13
try.c: 0x21c3630: v16i32 = X86ISD::VBROADCAST 0x2213bd0
try.c: 0x2213bd0: i32,ch = load<LD4[ConstantPool]> 0x2127dd0, 0x2243a20, undef:i64
try.c: 0x2243a20: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x21c6dd0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x222c010: i64 = undef
try.c: 0x2243db0: 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: 0x2243c80: i32 = Constant<0>
try.c: 0x2243c80: i32 = Constant<0>
try.c: 0x2243c80: i32 = Constant<0>
try.c: 0x2243c80: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl

Compiler output

Implementation: openssl
Security model: unknown
Compiler: gcc
hash.c: hash.c: In function 'crypto_hash_md2_openssl':
hash.c: hash.c:7:3: warning: implicit declaration of function 'MD2' [-Wimplicit-function-declaration]
hash.c: MD2(in,inlen,out);
hash.c: ^~~
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_hash_md2.a(hash.o): in function `crypto_hash_md2_openssl':
try.c: hash.c:(.text+0x...): undefined reference to `MD2'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 106, namely:
CompilerImplementations
gcc openssl
gcc -O2 -fomit-frame-pointer openssl
gcc -O3 -fomit-frame-pointer openssl
gcc -O -fomit-frame-pointer openssl
gcc -Os -fomit-frame-pointer openssl
gcc -fno-schedule-insns -O2 -fomit-frame-pointer openssl
gcc -fno-schedule-insns -O3 -fomit-frame-pointer openssl
gcc -fno-schedule-insns -O -fomit-frame-pointer openssl
gcc -fno-schedule-insns -Os -fomit-frame-pointer openssl
gcc -funroll-loops openssl
gcc -funroll-loops -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -O -fomit-frame-pointer openssl
gcc -funroll-loops -Os -fomit-frame-pointer openssl
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer openssl
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -O -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -Os -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer openssl
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer openssl
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer openssl
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer openssl
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer openssl
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer openssl
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer openssl
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer openssl
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer openssl
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer openssl
gcc -m64 -O2 -fomit-frame-pointer openssl
gcc -m64 -O3 -fomit-frame-pointer openssl
gcc -m64 -O -fomit-frame-pointer openssl
gcc -m64 -Os -fomit-frame-pointer openssl
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer openssl
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer openssl
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer openssl
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer openssl
gcc -m64 -march=core2 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -O -fomit-frame-pointer openssl
gcc -m64 -march=core2 -Os -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer openssl
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer openssl
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer openssl
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer openssl
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer openssl
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer openssl
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=corei7 -O -fomit-frame-pointer openssl
gcc -m64 -march=corei7 -Os -fomit-frame-pointer openssl
gcc -m64 -march=k8 -O2 -fomit-frame-pointer openssl
gcc -m64 -march=k8 -O3 -fomit-frame-pointer openssl
gcc -m64 -march=k8 -O -fomit-frame-pointer openssl
gcc -m64 -march=k8 -Os -fomit-frame-pointer openssl
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer openssl
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer openssl
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer openssl
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer openssl
gcc -m64 -march=nocona -O2 -fomit-frame-pointer openssl
gcc -m64 -march=nocona -O3 -fomit-frame-pointer openssl
gcc -m64 -march=nocona -O -fomit-frame-pointer openssl
gcc -m64 -march=nocona -Os -fomit-frame-pointer openssl
gcc -march=barcelona -O2 -fomit-frame-pointer openssl
gcc -march=barcelona -O3 -fomit-frame-pointer openssl
gcc -march=barcelona -O -fomit-frame-pointer openssl
gcc -march=barcelona -Os -fomit-frame-pointer openssl
gcc -march=k8 -O2 -fomit-frame-pointer openssl
gcc -march=k8 -O3 -fomit-frame-pointer openssl
gcc -march=k8 -O -fomit-frame-pointer openssl
gcc -march=k8 -Os -fomit-frame-pointer openssl
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv openssl
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv openssl
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv openssl
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv openssl
gcc -march=nocona -O2 -fomit-frame-pointer openssl
gcc -march=nocona -O3 -fomit-frame-pointer openssl
gcc -march=nocona -O -fomit-frame-pointer openssl
gcc -march=nocona -Os -fomit-frame-pointer openssl

Compiler output

Implementation: openssl
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
hash.c: hash.c: In function 'crypto_hash_md2_openssl':
hash.c: hash.c:7:3: warning: implicit declaration of function 'MD2' [-Wimplicit-function-declaration]
hash.c: MD2(in,inlen,out);
hash.c: ^~~
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_hash_md2.a(hash.o): in function `crypto_hash_md2_openssl':
try.c: hash.c:(.text+0x...): undefined reference to `MD2'
try.c: collect2: error: ld returned 1 exit status
hash.c: hash.c: In function 'crypto_hash_md2_openssl':
hash.c: hash.c:7:3: warning: implicit declaration of function 'MD2' [-Wimplicit-function-declaration]
hash.c: MD2(in,inlen,out);
hash.c: ^~~
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_hash_md2.a(hash.o): in function `crypto_hash_md2_openssl':
try.c: hash.c:(.text+0x...): undefined reference to `MD2'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer openssl
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer openssl
gcc -m64 -march=barcelona -O -fomit-frame-pointer openssl
gcc -m64 -march=barcelona -Os -fomit-frame-pointer openssl