Implementation notes: amd64, margaux, crypto_aead/norx3241v1
Computer: margaux
Microarchitecture: amd64; Core 2 65nm (6fb)
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: norx3241v1
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
50080 | 9816 0 0 | 32051 844 1024 | T:xmm | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
72819 | 4850 8 0 | 27299 852 1024 | T:ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
73139 | 2999 8 0 | 22277 844 1024 | T:ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
73261 | 4834 8 0 | 26171 852 1024 | T:ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
75580 | 4728 8 0 | 27067 852 1024 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
88987 | 3670 8 0 | 23153 788 1056 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
90512 | 4664 8 0 | 24651 852 1024 | T:ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
90950 | 9106 8 0 | 32092 820 1088 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
91996 | 4722 8 0 | 26564 820 1088 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
97767 | 3950 8 0 | 25132 812 1088 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240630 | 20240625 |
Compiler output
norx.c: norx.c:430:13: error: '__builtin_ia32_pblendw128' needs target feature sse4.1
norx.c: DECRYPT_BLOCK(A, B, C, D, c, m);
norx.c: ^
norx.c: norx.c:249:60: note: expanded from macro 'DECRYPT_BLOCK'
norx.c: W2 = LOADL(IN + 32); STOREL(OUT + 32, XOR(C, W2)); C = BLEND(C, W2); \
norx.c: ^
norx.c: norx.c:55:21: note: expanded from macro 'BLEND'
norx.c: #define BLEND(A, B) _mm_blend_epi16((A), (B), 0x0F)
norx.c: ^
norx.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/smmintrin.h:520:14: note: expanded from macro '_mm_blend_epi16'
norx.c: ((__m128i) __builtin_ia32_pblendw128 ((__v8hi)(__m128i)(V1), \
norx.c: ^
norx.c: norx.c:435:9: error: '__builtin_ia32_pblendw128' needs target feature sse4.1
norx.c: DECRYPT_LASTBLOCK(A, B, C, D, c, clen, m);
norx.c: ^
norx.c: norx.c:266:73: note: expanded from macro 'DECRYPT_LASTBLOCK'
norx.c: W2 = LOADL(lastblock + 32); STOREL(lastblock + 32, XOR(C, W2)); C = BLEND(C, W2); \
norx.c: ^
norx.c: norx.c:55:21: note: expanded from macro 'BLEND'
norx.c: #define BLEND(A, B) _mm_blend_epi16((A), (B), 0x0F)
norx.c: ^
norx.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/smmintrin.h:520:14: note: expanded from macro '_mm_blend_epi16'
norx.c: ((__m128i) __builtin_ia32_pblendw128 ((__v8hi)(__m128i)(V1), \
norx.c: ^
norx.c: 2 errors generated.
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:xmm | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:xmm | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:xmm | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:xmm | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
norx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:39,
norx.c: from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
norx.c: from norx.c:27:
norx.c: norx.c: In function 'crypto_aead_norx3241v1_xmm_timingleaks_decrypt':
norx.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:166:1: error: inlining failed in call to 'always_inline' '_mm_blend_epi16': target specific option mismatch
norx.c: 166 | _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
norx.c: | ^~~~~~~~~~~~~~~
norx.c: norx.c:55:21: note: called from here
norx.c: 55 | #define BLEND(A, B) _mm_blend_epi16((A), (B), 0x0F)
norx.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
norx.c: norx.c:249:60: note: in expansion of macro 'BLEND'
norx.c: 249 | W2 = LOADL(IN + 32); STOREL(OUT + 32, XOR(C, W2)); C = BLEND(C, W2); \
norx.c: | ^~~~~
norx.c: norx.c:430:13: note: in expansion of macro 'DECRYPT_BLOCK'
norx.c: 430 | DECRYPT_BLOCK(A, B, C, D, c, m);
norx.c: | ^~~~~~~~~~~~~
norx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:39,
norx.c: from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
norx.c: from norx.c:27:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:166:1: error: inlining failed in call to 'always_inline' '_mm_blend_epi16': target specific option mismatch
norx.c: 166 | _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
norx.c: | ^~~~~~~~~~~~~~~
norx.c: norx.c:55:21: note: called from here
norx.c: 55 | #define BLEND(A, B) _mm_blend_epi16((A), (B), 0x0F)
norx.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
norx.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:xmm | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:xmm | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:xmm | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:xmm | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |