Implementation notes: amd64, hydra1, crypto_aead/aezv4

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: aezv4
TimeImplementationCompilerBenchmark dateSUPERCOP version
743922refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016101520161009
744005refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016101520161009
750186refgcc -march=nocona -O3 -fomit-frame-pointer2016101520161009
757253refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016101520161009
922240refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016101520161009
922619refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016101520161009
972464refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016101520161009
973501refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016101520161009
974048refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016101520161009
975073refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016101520161009
977323refgcc -funroll-loops -O2 -fomit-frame-pointer2016101520161009
978619refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016101520161009
979122refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016101520161009
995517refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016101520161009
995685refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016101520161009
1007391refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016101520161009
1008208refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016101520161009
1008216refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016101520161009
1009813refgcc -march=barcelona -O3 -fomit-frame-pointer2016101520161009
1018374refgcc -m64 -O3 -fomit-frame-pointer2016101520161009
1019101refgcc -O3 -fomit-frame-pointer2016101520161009
1020699refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016101520161009
1020879refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016101520161009
1020902refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016101520161009
1026222refgcc -funroll-loops -O -fomit-frame-pointer2016101520161009
1026658refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016101520161009
1028904refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016101520161009
1035013refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016101520161009
1035856refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016101520161009
1036296refgcc -march=k8 -O3 -fomit-frame-pointer2016101520161009
1037171refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016101520161009
1042609refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016101520161009
1043914refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016101520161009
1044001refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016101520161009
1044211refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016101520161009
1057864refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016101520161009
1058149refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016101520161009
1058450refgcc -funroll-loops -O3 -fomit-frame-pointer2016101520161009
1139372refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101520161009
1140640refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101520161009
1142203refclang -O3 -fomit-frame-pointer -Qunused-arguments2016101520161009
1143216refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101520161009
1143273refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101520161009
1144373refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016101520161009
1280490refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016101520161009
1281608refgcc -march=barcelona -O2 -fomit-frame-pointer2016101520161009
1281858refgcc -O2 -fomit-frame-pointer2016101520161009
1284624refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016101520161009
1284987refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016101520161009
1285133refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016101520161009
1286602refgcc -m64 -O2 -fomit-frame-pointer2016101520161009
1289435refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016101520161009
1290013refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016101520161009
1292944refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016101520161009
1293819refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016101520161009
1294141refgcc -march=k8 -O2 -fomit-frame-pointer2016101520161009
1301920refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016101520161009
1373149refgcc -march=nocona -O2 -fomit-frame-pointer2016101520161009
1374544refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016101520161009
1455205refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016101520161009
1455474refgcc -m64 -march=core2 -O -fomit-frame-pointer2016101520161009
1462896refgcc -m64 -march=k8 -O -fomit-frame-pointer2016101520161009
1463225refgcc -march=barcelona -O -fomit-frame-pointer2016101520161009
1463787refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016101520161009
1463925refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016101520161009
1464499refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016101520161009
1470094refgcc -march=k8 -O -fomit-frame-pointer2016101520161009
1496795refgcc -fno-schedule-insns -O -fomit-frame-pointer2016101520161009
1498280refgcc -O -fomit-frame-pointer2016101520161009
1508448refgcc -m64 -O -fomit-frame-pointer2016101520161009
1549419refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016101520161009
1555974refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016101520161009
1559282refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016101520161009
1559383refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016101520161009
1559650refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016101520161009
1559658refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016101520161009
1559728refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016101520161009
1560455refgcc -funroll-loops -Os -fomit-frame-pointer2016101520161009
1560623refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016101520161009
1649272refgcc -march=nocona -O -fomit-frame-pointer2016101520161009
1649288refgcc -m64 -march=nocona -O -fomit-frame-pointer2016101520161009
1656104refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016101520161009
1657061refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016101520161009
1657115refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016101520161009
1657288refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016101520161009
1711864refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016101520161009
1726275refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016101520161009
1748208refgcc -march=nocona -Os -fomit-frame-pointer2016101520161009
1750151refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016101520161009
1764175refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016101520161009
1765077refgcc -march=barcelona -Os -fomit-frame-pointer2016101520161009
1766327refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016101520161009
1767380refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016101520161009
1768280refgcc -march=k8 -Os -fomit-frame-pointer2016101520161009
1768815refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016101520161009
1770750refgcc -m64 -Os -fomit-frame-pointer2016101520161009
1772099refgcc -Os -fomit-frame-pointer2016101520161009
1779254refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016101520161009
5491871refcc2016101520161009
5508946refgcc -funroll-loops2016101520161009
5512488refgcc2016101520161009

Test failure

Implementation: crypto_aead/aezv4/ref
Compiler: gcc -m64 -march=core2 -O3 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/aezv4/aesni
Compiler: cc
encrypt.c: encrypt.c:181:2: error: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: ^
encrypt.c: encrypt.c:210:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:210:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:214:8: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:214:27: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:219:1: error: unknown type name 'block'
encrypt.c: block zero_set_byte(char val, unsigned idx) {
encrypt.c: ^
encrypt.c: encrypt.c: In function 'zero_set_byte':
encrypt.c: encrypt.c:220:5: error: unknown type name 'block'
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^
encrypt.c: encrypt.c:220:17: error: 'zero' undeclared (first use in this function)
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/aezv4/aesni
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:181:2: error: - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: ^
encrypt.c: encrypt.c:210:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:210:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:211:12: warning: implicit declaration of function 'vand' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: return vand(x, loadu(pad + zero_bytes));
encrypt.c: ^
encrypt.c: encrypt.c:211:20: warning: implicit declaration of function 'loadu' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: return vand(x, loadu(pad + zero_bytes));
encrypt.c: ^
encrypt.c: encrypt.c:214:8: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:214:27: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:215:5: error: use of undeclared identifier 'block'
encrypt.c: block *p = (block*)(pad + one_zero_bytes);
encrypt.c: ^
encrypt.c: encrypt.c:215:12: error: use of undeclared identifier 'p'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments aesni
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments aesni
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments aesni
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments aesni
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments aesni
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments aesni

Compiler output

Implementation: crypto_aead/aezv4/aesni
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.c: encrypt.c:181:2: error: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: ^
encrypt.c: encrypt.c:210:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:210:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:214:8: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:214:27: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:219:1: error: unknown type name 'block'
encrypt.c: block zero_set_byte(char val, unsigned idx) {
encrypt.c: ^
encrypt.c: encrypt.c: In function 'zero_set_byte':
encrypt.c: encrypt.c:220:5: error: unknown type name 'block'
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^
encrypt.c: encrypt.c:220:17: error: 'zero' undeclared (first use in this function)
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^
encrypt.c: ...
encrypt.c: encrypt.c:181:2: error: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: ^
encrypt.c: encrypt.c:210:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:210:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:214:8: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:214:27: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:219:1: error: unknown type name 'block'
encrypt.c: block zero_set_byte(char val, unsigned idx) {
encrypt.c: ^
encrypt.c: encrypt.c: In function 'zero_set_byte':
encrypt.c: encrypt.c:220:5: error: unknown type name 'block'
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^
encrypt.c: encrypt.c:220:17: error: 'zero' undeclared (first use in this function)
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^
encrypt.c: ...

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