Implementation notes: amd64, utrecht, crypto_aead/hs1sivv2

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: hs1sivv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
35901fastergcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
36666fastergcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
37305fastergcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
37440fastergcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
64458refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
83178refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
95355refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
103383refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731

Compiler output

Implementation: crypto_aead/hs1sivv2/dolbeau/amd64-sse
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: In file included from encrypt.c:54:0:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/smmintrin.h:31:3: error: #error "SSE4.1 instruction set not enabled"
encrypt.c: # error "SSE4.1 instruction set not enabled"
encrypt.c: ^
encrypt.c: In file included from encrypt.c:190:0:
encrypt.c: c176.h: In function 'chacha_noxor176':
encrypt.c: c176.h:21:3: error: unknown type name '__m128i'
encrypt.c: __m128i rot16 = _mm_set_epi8(13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2);
encrypt.c: ^
encrypt.c: c176.h:22:3: error: unknown type name '__m128i'
encrypt.c: __m128i rot8 = _mm_set_epi8(14,13,12,15,10,9,8,11,6,5,4,7,2,1,0,3);
encrypt.c: ^
encrypt.c: c176.h:24:3: error: unknown type name '__m128i'
encrypt.c: __m128i x_0 = _mm_set1_epi32(x[0]);
encrypt.c: ^
encrypt.c: c176.h:25:3: error: unknown type name '__m128i'
encrypt.c: __m128i x_1 = _mm_set1_epi32(x[1]);
encrypt.c: ^
encrypt.c: c176.h:26:3: error: unknown type name '__m128i'
encrypt.c: __m128i x_2 = _mm_set1_epi32(x[2]);
encrypt.c: ^
encrypt.c: c176.h:27:3: error: unknown type name '__m128i'
encrypt.c: __m128i x_3 = _mm_set1_epi32(x[3]);
encrypt.c: ^
encrypt.c: c176.h:28:3: error: unknown type name '__m128i'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv dolbeau/amd64-sse
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv dolbeau/amd64-sse
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv dolbeau/amd64-sse
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv dolbeau/amd64-sse

Compiler output

Implementation: crypto_aead/hs1sivv2/dolbeau/amd64-avx2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:90:2: error: #error "This code requires AVX2 to work"
encrypt.c: #error "This code requires AVX2 to work"
encrypt.c: ^
encrypt.c: In file included from encrypt.c:194:0:
encrypt.c: c176.h: In function 'chacha_noxor176':
encrypt.c: c176.h:92:10: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: t_12 = _mm_broadcastd_epi32(_mm_cvtsi32_si128(in12));
encrypt.c: ^
encrypt.c: In file included from encrypt.c:238:0:
encrypt.c: u8.h: In function 'chacha_xor':
encrypt.c: u8.h:110:3: error: unknown type name '__m256i'
encrypt.c: __m256i rot16 = _mm256_set_epi8(13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2);
encrypt.c: ^
encrypt.c: u8.h:111:3: error: unknown type name '__m256i'
encrypt.c: __m256i rot8 = _mm256_set_epi8(14,13,12,15,10,9,8,11,6,5,4,7,2,1,0,3,14,13,12,15,10,9,8,11,6,5,4,7,2,1,0,3);
encrypt.c: ^
encrypt.c: u8.h:115:1: error: unknown type name '__m256i'
encrypt.c: __m256i x_0 = _mm256_set1_epi32(x[0]);
encrypt.c: ^
encrypt.c: u8.h:116:1: error: unknown type name '__m256i'
encrypt.c: __m256i x_1 = _mm256_set1_epi32(x[1]);
encrypt.c: ^
encrypt.c: u8.h:117:1: error: unknown type name '__m256i'
encrypt.c: __m256i x_2 = _mm256_set1_epi32(x[2]);
encrypt.c: ^
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv dolbeau/amd64-avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv dolbeau/amd64-avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv dolbeau/amd64-avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv dolbeau/amd64-avx2

Compiler output

Implementation: crypto_aead/hs1sivv2/dolbeau/amd64-avx512
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:90:2: error: #error "This code requires AVX512F to work"
encrypt.c: #error "This code requires AVX512F to work"
encrypt.c: ^
encrypt.c: In file included from encrypt.c:194:0:
encrypt.c: c176.h: In function 'chacha_noxor176':
encrypt.c: c176.h:92:10: error: incompatible types when assigning to type '__m128i' from type 'int'
encrypt.c: t_12 = _mm_broadcastd_epi32(_mm_cvtsi32_si128(in12));
encrypt.c: ^
encrypt.c: In file included from encrypt.c:238:0:
encrypt.c: u8.h: In function 'chacha_xor':
encrypt.c: u8.h:110:3: error: unknown type name '__m256i'
encrypt.c: __m256i rot16 = _mm256_set_epi8(13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2);
encrypt.c: ^
encrypt.c: u8.h:111:3: error: unknown type name '__m256i'
encrypt.c: __m256i rot8 = _mm256_set_epi8(14,13,12,15,10,9,8,11,6,5,4,7,2,1,0,3,14,13,12,15,10,9,8,11,6,5,4,7,2,1,0,3);
encrypt.c: ^
encrypt.c: u8.h:115:1: error: unknown type name '__m256i'
encrypt.c: __m256i x_0 = _mm256_set1_epi32(x[0]);
encrypt.c: ^
encrypt.c: u8.h:116:1: error: unknown type name '__m256i'
encrypt.c: __m256i x_1 = _mm256_set1_epi32(x[1]);
encrypt.c: ^
encrypt.c: u8.h:117:1: error: unknown type name '__m256i'
encrypt.c: __m256i x_2 = _mm256_set1_epi32(x[2]);
encrypt.c: ^
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512