Implementation notes: amd64, gpu, crypto_aead/deoxysneq256128v1

Computer: gpu
Architecture: amd64
CPU ID: GenuineIntel-000206d7-bfebfbff
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: deoxysneq256128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1438433389 0 050357 784 928optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019082520190816
2157236978 0 056253 784 928optgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019082520190816
2174033100 0 048432 760 896optgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019082520190816
2193236978 0 056157 784 928optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019082520190816
2239233389 0 050357 784 928optgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019082520190816
2378833100 0 048432 760 896optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019082520190816
2481636978 0 056253 784 928optgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019082520190816
2503234504 0 051245 784 928optgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019082520190816
2509233389 0 050357 784 928optgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019082520190816
2524833389 0 050357 784 928optgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019082520190816
2548833100 0 048432 760 896optgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019082520190816
2564434504 0 051245 784 928optgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019082520190816
2622036978 0 056253 784 928optgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019082520190816
2635633100 0 048432 760 896optgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019082520190816
2849634504 0 051245 784 928optgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019082520190816
2876834504 0 051245 784 928optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019082520190816
201178028607 0 043853 784 928refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019082520190816
208869228551 0 043853 784 928refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019082520190816
213256426524 0 043549 760 1160refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082520190816
215828028551 0 043853 784 928refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019082520190816
217790028551 0 043757 784 928refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019082520190816
218284428551 0 043853 784 928refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019082520190816
219829226512 0 045261 760 872refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082520190816
224371228591 0 043669 784 928refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019082520190816
228872426656 0 044461 760 1160refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082520190816
229149226524 0 043549 760 1160refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082520190816
231815226656 0 044461 760 1160refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2019082520190816
233874429729 0 044949 784 928refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019082520190816
234745626496 0 046573 760 872refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082520190816
237430826496 0 046573 760 872refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082520190816
237433626496 0 046573 760 872refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082520190816
238084028607 0 043789 784 928refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019082520190816
259991230201 0 047421 784 928refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019082520190816
263682829975 0 044909 784 928refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019082520190816
269622030074 0 045309 784 928refgcc_-m64_-O3_-fomit-frame-pointer2019082520190816
273933630201 0 047421 784 928refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019082520190816
274072030343 0 047901 784 928refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082520190816
275422830074 0 045309 784 928refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082520190816
277199630074 0 045309 784 928refgcc_-O3_-fomit-frame-pointer2019082520190816
279427230343 0 047901 784 928refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082520190816
281192429975 0 044909 784 928refgcc_-march=nocona_-O3_-fomit-frame-pointer2019082520190816
284132430343 0 047901 784 928refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019082520190816
290720831261 0 049429 784 928refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019082520190816
291652831058 0 046581 784 928refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019082520190816
292870431261 0 049429 784 928refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019082520190816
294649630930 0 046693 784 928refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019082520190816
311496831189 0 049525 784 928refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019082520190816
316461261860 0 046693 784 928refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019082520190816
318120431189 0 049525 784 928refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019082520190816
325440831058 0 046581 784 928refgcc_-march=k8_-O3_-fomit-frame-pointer2019082520190816
402523228097 0 044477 784 928refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019082520190816
403332427968 0 044237 784 928refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082520190816
422165627968 0 044237 784 928refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019082520190816
426256427968 0 044237 784 928refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082520190816
428308827826 0 043701 784 928refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019082520190816
440349227826 0 043701 784 928refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019082520190816
440570028097 0 044477 784 928refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019082520190816
464368024676 0 037333 784 928refgcc_-march=nocona_-O2_-fomit-frame-pointer2019082520190816
467480049786 0 038205 784 928refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019082520190816
471500824689 0 037701 784 928refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019082520190816
472325624676 0 037333 784 928refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019082520190816
474753628009 0 044205 784 928refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019082520190816
477765224641 0 037637 784 928refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019082520190816
480570424757 0 037773 784 928refgcc_-march=k8_-O2_-fomit-frame-pointer2019082520190816
481068828009 0 044205 784 928refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019082520190816
483093224625 0 037621 784 928refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082520190816
483884424625 0 037621 784 928refgcc_-O2_-fomit-frame-pointer2019082520190816
484845624925 0 037933 784 928refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019082520190816
485045224757 0 037773 784 928refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019082520190816
496094424893 0 038205 784 928refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019082520190816
497478824689 0 037701 784 928refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019082520190816
503431624625 0 037621 784 928refgcc_-m64_-O2_-fomit-frame-pointer2019082520190816
506916824689 0 037701 784 928refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019082520190816
509626824925 0 037933 784 928refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019082520190816
513104024689 0 037701 784 928refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019082520190816
519229624925 0 037933 784 928refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019082520190816
543726427179 0 043605 784 928refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019082520190816
585966027179 0 043605 784 928refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019082520190816
611107222659 0 034584 760 896refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019082520190816
612669222659 0 034584 760 896refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082520190816
616220022608 0 034512 760 896refgcc_-m64_-Os_-fomit-frame-pointer2019082520190816
617450822659 0 034584 760 896refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082520190816
620438422651 0 034560 760 896refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019082520190816
627037622608 0 034512 760 896refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019082520190816
630575223783 0 036829 784 928refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019082520190816
637116023778 0 036789 784 928refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019082520190816
643899227191 0 043549 784 928refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019082520190816
646735627196 0 043685 784 928refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082520190816
649457623783 0 036829 784 928refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019082520190816
650204423783 0 036829 784 928refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019082520190816
650514822608 0 034512 760 896refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082520190816
650772422608 0 034512 760 896refgcc_-Os_-fomit-frame-pointer2019082520190816
651657622586 0 034496 760 896refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019082520190816
656497223783 0 036829 784 928refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019082520190816
657218822651 0 034560 760 896refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019082520190816
659880423783 0 036829 784 928refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019082520190816
660228022647 0 034584 760 896refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019082520190816
662444827191 0 043549 784 928refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019082520190816
664712422651 0 034560 760 896refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019082520190816
672296823783 0 036829 784 928refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019082520190816
674996422586 0 034496 760 896refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019082520190816
676201623711 0 036749 784 928refgcc_-march=barcelona_-O_-fomit-frame-pointer2019082520190816
678356047422 0 036749 784 928refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019082520190816
679697627118 0 043413 784 928refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019082520190816
681536822681 0 034592 760 896refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019082520190816
682292822585 0 034496 760 896refgcc_-march=nocona_-Os_-fomit-frame-pointer2019082520190816
683886023783 0 036829 784 928refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019082520190816
689428022586 0 034496 760 896refgcc_-march=k8_-Os_-fomit-frame-pointer2019082520190816
694298827118 0 043413 784 928refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019082520190816
695468823778 0 036789 784 928refgcc_-march=nocona_-O_-fomit-frame-pointer2019082520190816
695529222647 0 034584 760 896refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019082520190816
698844845172 0 034496 760 896refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019082520190816
699547622586 0 034496 760 896refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019082520190816
705382422586 0 034496 760 896refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019082520190816
710266422647 0 034584 760 896refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019082520190816
717879222647 0 034584 760 896refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019082520190816
718646823784 0 036829 784 928refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082520190816
721143622586 0 034496 760 896refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019082520190816
721693222585 0 034496 760 896refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019082520190816
725313222646 0 034584 760 896refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019082520190816
727803227196 0 043685 784 928refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019082520190816
731262027196 0 043685 784 928refgcc_-funroll-loops_-O_-fomit-frame-pointer2019082520190816
745997622646 0 034584 760 896refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019082520190816
767110423764 0 036797 784 928refgcc_-march=k8_-O_-fomit-frame-pointer2019082520190816
772007623764 0 036797 784 928refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019082520190816
778353223784 0 036829 784 928refgcc_-m64_-O_-fomit-frame-pointer2019082520190816
779435623784 0 036829 784 928refgcc_-O_-fomit-frame-pointer2019082520190816
799605223783 0 036829 784 928refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019082520190816
1682045640865 0 055479 768 888refcc2019082520190816
1718767240865 0 055479 768 888refgcc2019082520190816
1753248440865 0 055479 768 888refgcc_-funroll-loops2019082520190816

Test failure

Implementation: opt
Security model: unknown
Compiler: gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer opt
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer opt
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer opt
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer ref

Compiler output

Implementation: opt
Security model: unknown
Compiler: cc
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: deoxys-256.c: In function 'deoxys_aead_encrypt':
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: deoxys-256.c:96:11: note: called from here
deoxys-256.c: tmp = permute( tmp, H_PERMUTATION );
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: deoxys-256.c:96:11: note: called from here
deoxys-256.c: tmp = permute( tmp, H_PERMUTATION );
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: In file included from deoxys-256.c:30:0:
deoxys-256.c: tweakable-cipher.macros:7:22: note: called from here
deoxys-256.c: #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys-256.c: ^~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: tweakable-cipher.macros:31:14: note: in expansion of macro 'permute'
deoxys-256.c: new_key2 = permute( new_key2, H_PERMUTATION);
deoxys-256.c: ^~~~~~~
deoxys-256.c: tweakable-cipher.macros:52:3: note: in expansion of macro 'ONE_KEY_ROUND'
deoxys-256.c: ...

Number of similar (compiler,implementation) pairs: 71, namely:
CompilerImplementations
cc opt
gcc opt
gcc -O2 -fomit-frame-pointer opt
gcc -O3 -fomit-frame-pointer opt
gcc -O -fomit-frame-pointer opt
gcc -Os -fomit-frame-pointer opt
gcc -fno-schedule-insns -O2 -fomit-frame-pointer opt
gcc -fno-schedule-insns -O3 -fomit-frame-pointer opt
gcc -fno-schedule-insns -O -fomit-frame-pointer opt
gcc -fno-schedule-insns -Os -fomit-frame-pointer opt
gcc -funroll-loops opt
gcc -funroll-loops -O2 -fomit-frame-pointer opt
gcc -funroll-loops -O3 -fomit-frame-pointer opt
gcc -funroll-loops -O -fomit-frame-pointer opt
gcc -funroll-loops -Os -fomit-frame-pointer opt
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer opt
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer opt
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer opt
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer opt
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer opt
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer opt
gcc -funroll-loops -m64 -O -fomit-frame-pointer opt
gcc -funroll-loops -m64 -Os -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer opt
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer opt
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer opt
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer opt
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer opt
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer opt
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer opt
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer opt
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer opt
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer opt
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer opt
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer opt
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer opt
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer opt
gcc -m64 -O2 -fomit-frame-pointer opt
gcc -m64 -O3 -fomit-frame-pointer opt
gcc -m64 -O -fomit-frame-pointer opt
gcc -m64 -Os -fomit-frame-pointer opt
gcc -m64 -march=k8 -O2 -fomit-frame-pointer opt
gcc -m64 -march=k8 -O3 -fomit-frame-pointer opt
gcc -m64 -march=k8 -O -fomit-frame-pointer opt
gcc -m64 -march=k8 -Os -fomit-frame-pointer opt
gcc -m64 -march=nocona -O2 -fomit-frame-pointer opt
gcc -m64 -march=nocona -O3 -fomit-frame-pointer opt
gcc -m64 -march=nocona -O -fomit-frame-pointer opt
gcc -m64 -march=nocona -Os -fomit-frame-pointer opt
gcc -march=barcelona -O2 -fomit-frame-pointer opt
gcc -march=barcelona -O3 -fomit-frame-pointer opt
gcc -march=barcelona -O -fomit-frame-pointer opt
gcc -march=barcelona -Os -fomit-frame-pointer opt
gcc -march=k8 -O2 -fomit-frame-pointer opt
gcc -march=k8 -O3 -fomit-frame-pointer opt
gcc -march=k8 -O -fomit-frame-pointer opt
gcc -march=k8 -Os -fomit-frame-pointer opt
gcc -march=nocona -O2 -fomit-frame-pointer opt
gcc -march=nocona -O3 -fomit-frame-pointer opt
gcc -march=nocona -O -fomit-frame-pointer opt
gcc -march=nocona -Os -fomit-frame-pointer opt

Compiler output

Implementation: opt
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
deoxys-256.c: deoxys-256.c:47:50: warning: implicit conversion from 'int' to 'char' changes value from 192 to -64 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_AD_LAST = constant8( (0x6<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:50:56: warning: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_M_LAST_NONZERO = constant8( (0x4<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:51:49: warning: implicit conversion from 'int' to 'char' changes value from 160 to -96 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_CHKSUM = constant8( (0x5<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:96:13: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'deoxys_aead_encrypt' that is compiled without support for 'ssse3'
deoxys-256.c: tmp = permute( tmp, H_PERMUTATION );
deoxys-256.c: ^
deoxys-256.c: ./tweakable-cipher.macros:7:22: note: expanded from macro 'permute'
deoxys-256.c: #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys-256.c: ^
deoxys-256.c: deoxys-256.c:104:5: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'deoxys_aead_encrypt' that is compiled without support for 'ssse3'
deoxys-256.c: ...

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

Compiler output

Implementation: opt
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
deoxys-256.c: deoxys-256.c:47:50: warning: implicit conversion from 'int' to 'char' changes value from 192 to -64 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_AD_LAST = constant8( (0x6<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:50:56: warning: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_M_LAST_NONZERO = constant8( (0x4<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:51:49: warning: implicit conversion from 'int' to 'char' changes value from 160 to -96 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_CHKSUM = constant8( (0x5<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:294:50: warning: implicit conversion from 'int' to 'char' changes value from 192 to -64 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_AD_LAST = constant8( (0x6<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:297:56: warning: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Wconstant-conversion]
deoxys-256.c: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments opt
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments opt
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments opt

Compiler output

Implementation: opt
Security model: unknown
Compiler: clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments
deoxys-256.c: deoxys-256.c:47:50: warning: implicit conversion from 'int' to 'char' changes value from 192 to -64 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_AD_LAST = constant8( (0x6<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:50:56: warning: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_M_LAST_NONZERO = constant8( (0x4<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:51:49: warning: implicit conversion from 'int' to 'char' changes value from 160 to -96 [-Wconstant-conversion]
deoxys-256.c: const __m128i MSB_CHKSUM = constant8( (0x5<<5),0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 );
deoxys-256.c: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: ./tweakable-cipher.macros:12:171: note: expanded from macro 'constant8'
deoxys-256.c: #define constant8(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) _mm_set_epi8 ((b0),(b1),(b2),(b3),(b4),(b5),(b6),(b7),(b8),(b9),(b10),(b11),(b12),(b13),(b14),(b15))
deoxys-256.c: ~~~~~~~~~~~~ ^~~
deoxys-256.c: deoxys-256.c:120:4: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'deoxys_aead_encrypt' that is compiled without support for 'aes'
deoxys-256.c: AES( State, subkeys, Tweak, tTweak );
deoxys-256.c: ^
deoxys-256.c: ./tweakable-cipher.macros:79:5: note: expanded from macro 'AES'
deoxys-256.c: s = enc( s , xor( subkeys[ 1] , t ) );t=permute( t , H_PERMUTATION);\
deoxys-256.c: ^
deoxys-256.c: ./tweakable-cipher.macros:1:18: note: expanded from macro 'enc'
deoxys-256.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments opt

Compiler output

Implementation: opt
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: deoxys-256.c: In function 'deoxys_aead_encrypt':
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: deoxys-256.c:96:11: note: called from here
deoxys-256.c: tmp = permute( tmp, H_PERMUTATION );
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: deoxys-256.c:96:11: note: called from here
deoxys-256.c: tmp = permute( tmp, H_PERMUTATION );
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: In file included from deoxys-256.c:30:0:
deoxys-256.c: tweakable-cipher.macros:7:22: note: called from here
deoxys-256.c: #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys-256.c: ^~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: tweakable-cipher.macros:31:14: note: in expansion of macro 'permute'
deoxys-256.c: new_key2 = permute( new_key2, H_PERMUTATION);
deoxys-256.c: ^~~~~~~
deoxys-256.c: tweakable-cipher.macros:52:3: note: in expansion of macro 'ONE_KEY_ROUND'
deoxys-256.c: ...
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: deoxys-256.c: In function 'deoxys_aead_encrypt':
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: deoxys-256.c:96:11: note: called from here
deoxys-256.c: tmp = permute( tmp, H_PERMUTATION );
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: deoxys-256.c:96:11: note: called from here
deoxys-256.c: tmp = permute( tmp, H_PERMUTATION );
deoxys-256.c: In file included from deoxys-256.c:29:0:
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
deoxys-256.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: In file included from deoxys-256.c:30:0:
deoxys-256.c: tweakable-cipher.macros:7:22: note: called from here
deoxys-256.c: #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys-256.c: ^~~~~~~~~~~~~~~~~~~~~
deoxys-256.c: tweakable-cipher.macros:31:14: note: in expansion of macro 'permute'
deoxys-256.c: new_key2 = permute( new_key2, H_PERMUTATION);
deoxys-256.c: ^~~~~~~
deoxys-256.c: tweakable-cipher.macros:52:3: note: in expansion of macro 'ONE_KEY_ROUND'
deoxys-256.c: ...

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

Compiler output

Implementation: opt
Security model: unknown
Compiler: gcc -m64 -march=core2 -O2 -fomit-frame-pointer
deoxys-256.c: In file included from deoxys-256.c:28:0:
deoxys-256.c: deoxys-256.c: In function 'deoxys_aead_encrypt':
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
deoxys-256.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: In file included from deoxys-256.c:30:0:
deoxys-256.c: tweakable-cipher.macros:94:3: note: called from here
deoxys-256.c: s = enc( s , xor( subkeys[16] , t ) );
deoxys-256.c: deoxys-256.c:120:4: note: in expansion of macro 'AES'
deoxys-256.c: AES( State, subkeys, Tweak, tTweak );
deoxys-256.c: ^~~
deoxys-256.c: In file included from deoxys-256.c:28:0:
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
deoxys-256.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: In file included from deoxys-256.c:30:0:
deoxys-256.c: tweakable-cipher.macros:93:3: note: called from here
deoxys-256.c: s = enc( s , xor( subkeys[15] , t ) );t=permute( t , H_PERMUTATION);\
deoxys-256.c: deoxys-256.c:120:4: note: in expansion of macro 'AES'
deoxys-256.c: AES( State, subkeys, Tweak, tTweak );
deoxys-256.c: ^~~
deoxys-256.c: In file included from deoxys-256.c:28:0:
deoxys-256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
deoxys-256.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
deoxys-256.c: ^~~~~~~~~~~~~~~~
deoxys-256.c: ...

Number of similar (compiler,implementation) pairs: 16, namely:
CompilerImplementations
gcc -m64 -march=core2 -O2 -fomit-frame-pointer opt
gcc -m64 -march=core2 -O3 -fomit-frame-pointer opt
gcc -m64 -march=core2 -O -fomit-frame-pointer opt
gcc -m64 -march=core2 -Os -fomit-frame-pointer opt
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer opt
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer opt
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer opt
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer opt
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer opt
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer opt
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer opt
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer opt
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer opt
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer opt
gcc -m64 -march=corei7 -O -fomit-frame-pointer opt
gcc -m64 -march=corei7 -Os -fomit-frame-pointer opt