Implementation notes: amd64, cel02, crypto_hash/md2

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: md2

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: 0x55750a925240: v4i64 = X86ISD::VTRUNC 0x55750a925110
try.c: 0x55750a925110: v16i32 = vselect 0x55750a91fc10, 0x55750a8ce5c0, 0x55750a924fe0
try.c: 0x55750a91fc10: v4i1 = X86ISD::PCMPGTM 0x55750a906890, 0x55750a902420
try.c: 0x55750a906890: v4i64 = X86ISD::VBROADCAST 0x55750a8a6a60
try.c: 0x55750a8a6a60: i64,ch = load<LD8[%lsr.iv6971]> 0x55750a8178f0, 0x55750a8f45e0, undef:i64
try.c: 0x55750a8f45e0: i64,ch = CopyFromReg 0x55750a8178f0, Register:i64 %vreg50
try.c: 0x55750a902680: i64 = Register %vreg50
try.c: 0x55750a8ccc30: i64 = undef
try.c: 0x55750a902420: v4i64,ch = CopyFromReg 0x55750a8178f0, Register:v4i64 %vreg13
try.c: 0x55750a9070e0: v4i64 = Register %vreg13
try.c: 0x55750a8ce5c0: v16i32 = X86ISD::VBROADCAST 0x55750a906af0
try.c: 0x55750a906af0: i32,ch = load<LD4[ConstantPool]> 0x55750a8178f0, 0x55750a8a6040, undef:i64
try.c: 0x55750a8a6040: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55750a8edf10: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55750a8ccc30: i64 = undef
try.c: 0x55750a924fe0: 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: 0x55750a924eb0: i32 = Constant<0>
try.c: 0x55750a924eb0: i32 = Constant<0>
try.c: 0x55750a924eb0: i32 = Constant<0>
try.c: 0x55750a924eb0: i32 = Constant<0>
try.c: 0x55750a924eb0: i32 = Constant<0>
try.c: 0x55750a924eb0: i32 = Constant<0>
try.c: 0x55750a924eb0: i32 = Constant<0>
try.c: 0x55750a924eb0: i32 = Constant<0>
try.c: 0x55750a924eb0: 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:openssl

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: 0x5633c4560790: v4i64 = X86ISD::VTRUNC 0x5633c4560660
try.c: 0x5633c4560660: v16i32 = vselect 0x5633c455b160, 0x5633c44f2a90, 0x5633c4560530
try.c: 0x5633c455b160: v4i1 = X86ISD::PCMPGTM 0x5633c4547390, 0x5633c4543160
try.c: 0x5633c4547390: v4i64 = X86ISD::VBROADCAST 0x5633c44f2f50
try.c: 0x5633c44f2f50: i64,ch = load<LD8[%lsr.iv6971]> 0x5633c44419f0, 0x5633c44e2310, undef:i64
try.c: 0x5633c44e2310: i64,ch = CopyFromReg 0x5633c44419f0, Register:i64 %vreg50
try.c: 0x5633c45433c0: i64 = Register %vreg50
try.c: 0x5633c44f61d0: i64 = undef
try.c: 0x5633c4543160: v4i64,ch = CopyFromReg 0x5633c44419f0, Register:v4i64 %vreg13
try.c: 0x5633c4547be0: v4i64 = Register %vreg13
try.c: 0x5633c44f2a90: v16i32 = X86ISD::VBROADCAST 0x5633c45475f0
try.c: 0x5633c45475f0: i32,ch = load<LD4[ConstantPool]> 0x5633c44419f0, 0x5633c44dc7f0, undef:i64
try.c: 0x5633c44dc7f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5633c44f6b50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5633c44f61d0: i64 = undef
try.c: 0x5633c4560530: 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: 0x5633c4560400: i32 = Constant<0>
try.c: 0x5633c4560400: i32 = Constant<0>
try.c: 0x5633c4560400: i32 = Constant<0>
try.c: 0x5633c4560400: i32 = Constant<0>
try.c: 0x5633c4560400: i32 = Constant<0>
try.c: 0x5633c4560400: i32 = Constant<0>
try.c: 0x5633c4560400: i32 = Constant<0>
try.c: 0x5633c4560400: i32 = Constant<0>
try.c: 0x5633c4560400: 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:openssl

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: 0x56391d3558e0: v4i64 = X86ISD::VTRUNC 0x56391d3557b0
try.c: 0x56391d3557b0: v16i32 = vselect 0x56391d3676b0, 0x56391d2f6200, 0x56391d355680
try.c: 0x56391d3676b0: v4i1 = X86ISD::PCMPGTM 0x56391d34cb20, 0x56391d3486b0
try.c: 0x56391d34cb20: v4i64 = X86ISD::VBROADCAST 0x56391d2fbb60
try.c: 0x56391d2fbb60: i64,ch = load<LD8[%lsr.iv6971]> 0x56391d25d910, 0x56391d338150, undef:i64
try.c: 0x56391d338150: i64,ch = CopyFromReg 0x56391d25d910, Register:i64 %vreg50
try.c: 0x56391d348910: i64 = Register %vreg50
try.c: 0x56391d2f4870: i64 = undef
try.c: 0x56391d3486b0: v4i64,ch = CopyFromReg 0x56391d25d910, Register:v4i64 %vreg13
try.c: 0x56391d34d370: v4i64 = Register %vreg13
try.c: 0x56391d2f6200: v16i32 = X86ISD::VBROADCAST 0x56391d34cd80
try.c: 0x56391d34cd80: i32,ch = load<LD4[ConstantPool]> 0x56391d25d910, 0x56391d2fb140, undef:i64
try.c: 0x56391d2fb140: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56391d336860: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56391d2f4870: i64 = undef
try.c: 0x56391d355680: 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: 0x56391d355550: i32 = Constant<0>
try.c: 0x56391d355550: i32 = Constant<0>
try.c: 0x56391d355550: i32 = Constant<0>
try.c: 0x56391d355550: i32 = Constant<0>
try.c: 0x56391d355550: i32 = Constant<0>
try.c: 0x56391d355550: i32 = Constant<0>
try.c: 0x56391d355550: i32 = Constant<0>
try.c: 0x56391d355550: i32 = Constant<0>
try.c: 0x56391d355550: 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:openssl

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: crypto_hash_md2.a(hash.o): In function `crypto_hash_md2_openssl_timingleaks':
try.c: hash.c:(.text+0x...): undefined reference to `MD2'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c: In function 'crypto_hash_md2_openssl_timingleaks':
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: crypto_hash_md2.a(hash.o): In function `crypto_hash_md2_openssl_timingleaks':
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 -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl