Implementation notes: amd64, oki, crypto_sign/pflash1

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_sign
Primitive: pflash1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4854600? ? ?? ? ?refcc2019011420181123

Compiler output

Implementation: ref
Security model: unknown
Compiler: cc
SignScheme.c: SignScheme.c: In function 'signatureofshorthash':
SignScheme.c: SignScheme.c:211:2: warning: passing argument 1 of 'SignScheme_sign' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme_sign( sk , h , mlen , sm );
SignScheme.c: ^
SignScheme.c: SignScheme.c:95:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: int SignScheme_sign( byte * pri , byte * Y , int Ylen , byte * outX )
SignScheme.c: ^
SignScheme.c: SignScheme.c: In function 'verification':
SignScheme.c: SignScheme.c:227:2: warning: passing argument 1 of 'SignScheme_GMap' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^
SignScheme.c: SignScheme.c:152:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:2: warning: passing argument 2 of 'SignScheme_GMap' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^
SignScheme.c: SignScheme.c:152:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
SignScheme.c: SignScheme.c:211:19: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_sign( sk , h , mlen , sm );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:95:29: note: passing argument to parameter 'pri' here
SignScheme.c: int SignScheme_sign( byte * pri , byte * Y , int Ylen , byte * outX )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:19: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:152:29: note: passing argument to parameter 'pub' here
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:24: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:152:42: note: passing argument to parameter 'X' here
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: 3 warnings generated.
try.c: /usr/bin/ld: crypto_sign_pflash1.a(PFLASH.o): in function `PFLASH_QMap':
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow88'
try.c: /usr/bin/ld: crypto_sign_pflash1.a(PFLASH.o): in function `PFLASH_ivsQMap':
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow24'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow56'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow56'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow56'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: /usr/bin/ld: PFLASH.c:(.text+0x...): undefined reference to `polyPow56'
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 ref
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
SignScheme.c: SignScheme.c:211:19: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_sign( sk , h , mlen , sm );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:95:29: note: passing argument to parameter 'pri' here
SignScheme.c: int SignScheme_sign( byte * pri , byte * Y , int Ylen , byte * outX )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:19: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:152:29: note: passing argument to parameter 'pub' here
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:24: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:152:42: note: passing argument to parameter 'X' here
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: 3 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x27a2d90: v4i64 = X86ISD::VTRUNC 0x27a2bc0
try.c: 0x27a2bc0: v16i32 = vselect 0x27a7a80, 0x272bac0, 0x27a2a90
try.c: 0x27a7a80: v4i1 = X86ISD::PCMPGTM 0x27896b0, 0x27201b0
try.c: 0x27896b0: v4i64 = X86ISD::VBROADCAST 0x2720540
try.c: 0x2720540: i64,ch = load<LD8[%uglygep72]> 0x2684db0, 0x2707ad0, undef:i64
try.c: 0x2707ad0: i64 = add 0x278a590, 0x271a1d0
try.c: 0x278a590: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x2780920: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x271a1d0: i64 = shl 0x27800d0, Constant:i8<3>
try.c: 0x27800d0: i64,ch = CopyFromReg 0x2684db0, Register:i64 %vreg50
try.c: 0x278aa50: i64 = Register %vreg50
try.c: 0x2722e60: i8 = Constant<3>
try.c: 0x2787510: i64 = undef
try.c: 0x27201b0: v4i64,ch = CopyFromReg 0x2684db0, Register:v4i64 %vreg13
try.c: 0x2737510: v4i64 = Register %vreg13
try.c: 0x272bac0: v16i32 = X86ISD::VBROADCAST 0x2780330
try.c: 0x2780330: i32,ch = load<LD4[ConstantPool]> 0x2684db0, 0x27a2700, undef:i64
try.c: 0x27a2700: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x2735030: i64 = TargetConstantPool<i32 1> 0
try.c: 0x2787510: i64 = undef
try.c: 0x27a2a90: 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: 0x27a2960: i32 = Constant<0>
try.c: 0x27a2960: i32 = Constant<0>
try.c: 0x27a2960: i32 = Constant<0>
try.c: 0x27a2960: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
SignScheme.c: SignScheme.c:211:19: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_sign( sk , h , mlen , sm );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:95:29: note: passing argument to parameter 'pri' here
SignScheme.c: int SignScheme_sign( byte * pri , byte * Y , int Ylen , byte * outX )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:19: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:152:29: note: passing argument to parameter 'pub' here
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:24: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:152:42: note: passing argument to parameter 'X' here
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: 3 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0xd5f3e0: v4i64 = X86ISD::VTRUNC 0xd5f210
try.c: 0xd5f210: v16i32 = vselect 0xd671d0, 0xcf6380, 0xd5f0e0
try.c: 0xd671d0: v4i1 = X86ISD::PCMPGTM 0xd46cc0, 0xcf24f0
try.c: 0xd46cc0: v4i64 = X86ISD::VBROADCAST 0xcf2880
try.c: 0xcf2880: i64,ch = load<LD8[%uglygep72]> 0xc41dd0, 0xcecc40, undef:i64
try.c: 0xcecc40: i64 = add 0xd47ba0, 0xce76a0
try.c: 0xd47ba0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0xd3ee20: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0xce76a0: i64 = shl 0xd3e5d0, Constant:i8<3>
try.c: 0xd3e5d0: i64,ch = CopyFromReg 0xc41dd0, Register:i64 %vreg50
try.c: 0xd48060: i64 = Register %vreg50
try.c: 0xce8ca0: i8 = Constant<3>
try.c: 0xd45330: i64 = undef
try.c: 0xcf24f0: v4i64,ch = CopyFromReg 0xc41dd0, Register:v4i64 %vreg13
try.c: 0xcee750: v4i64 = Register %vreg13
try.c: 0xcf6380: v16i32 = X86ISD::VBROADCAST 0xd3e830
try.c: 0xd3e830: i32,ch = load<LD4[ConstantPool]> 0xc41dd0, 0xd5ed50, undef:i64
try.c: 0xd5ed50: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0xcf7310: i64 = TargetConstantPool<i32 1> 0
try.c: 0xd45330: i64 = undef
try.c: 0xd5f0e0: 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: 0xd5efb0: i32 = Constant<0>
try.c: 0xd5efb0: i32 = Constant<0>
try.c: 0xd5efb0: i32 = Constant<0>
try.c: 0xd5efb0: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: gcc
PFLASH.c: PFLASH.c:152:16: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: memcpy( outZ ,_Z,37);
PFLASH.c: ^~
PFLASH.c: PFLASH.c:149:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37- 0)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:148:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37- 2)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:147:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37-10)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:146:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37-12)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:143:10: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: temp = _Z[i];
PFLASH.c: ^~
PFLASH.c: PFLASH.c:136:15: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: if( logY ) _Z[i+j] ^= alogtab[logX+logY];
PFLASH.c: ^~
PFLASH.c: PFLASH.c:128:11: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: memset(_Z,0,73);
PFLASH.c: ^~
PFLASH.c: PFLASH.c:122:16: warning: '_Z' is static but used in inline function 'polySqu' which is not static
PFLASH.c: ...

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
PFLASH.c: PFLASH.c:152:16: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: memcpy( outZ ,_Z,37);
PFLASH.c: ^~
PFLASH.c: PFLASH.c:149:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37- 0)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:148:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37- 2)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:147:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37-10)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:146:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37-12)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:143:10: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: temp = _Z[i];
PFLASH.c: ^~
PFLASH.c: PFLASH.c:136:15: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: if( logY ) _Z[i+j] ^= alogtab[logX+logY];
PFLASH.c: ^~
PFLASH.c: PFLASH.c:128:11: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: memset(_Z,0,73);
PFLASH.c: ^~
PFLASH.c: PFLASH.c:122:16: warning: '_Z' is static but used in inline function 'polySqu' which is not static
PFLASH.c: ...
PFLASH.c: PFLASH.c:152:16: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: memcpy( outZ ,_Z,37);
PFLASH.c: ^~
PFLASH.c: PFLASH.c:149:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37- 0)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:148:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37- 2)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:147:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37-10)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:146:4: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: _Z[i-(37-12)] ^= temp;
PFLASH.c: ^~
PFLASH.c: PFLASH.c:143:10: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: temp = _Z[i];
PFLASH.c: ^~
PFLASH.c: PFLASH.c:136:15: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: if( logY ) _Z[i+j] ^= alogtab[logX+logY];
PFLASH.c: ^~
PFLASH.c: PFLASH.c:128:11: warning: '_Z' is static but used in inline function 'polyMul' which is not static
PFLASH.c: memset(_Z,0,73);
PFLASH.c: ^~
PFLASH.c: PFLASH.c:122:16: warning: '_Z' is static but used in inline function 'polySqu' which is not static
PFLASH.c: ...

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