Je commence à regarder la documentation de NEON, l'unité simd des ARM Cortex A8 et supérieurs. Il n'y a pas encore des masses de docs "accessibles" à ce sujet, pas évident de trouver des tutoriaux de la qualité de ceux qui existent pour Altivec ou SSE. On trouve quand même une série d'articles très interessants sur blogs.arm.com:

Et franchement après avoir lu ça on ne peut qu'éprouver un sentiment de gêne pour Intel et son SSE tellement rustique qu'il fait figure d'idiot du village (le village des instructions simd). Car oui, NEON n'est pas psychorigide sur les questions d'alignement mémoire (et c'est *tellement* chiant avec SSE, et un peu chiant avec altivec). Il est aussi capable d'opérations de shuffling très avancées, avec la possibilité, en une seule instruction, de charger, désentrelacer jusqu'à 4 vecteurs 64 bits ET de post-incrementer le registre d'adresse d'une valeur abitraire. Take that, SSE. Et enfin il propose un nombre de registres raisonnable, càd 32 registres de 64 bits, qui peuvent aussi être manipulés comme 16 registres de 128 bits (chez intel: 8 registres de 128 bits en mode 32-bits, 16 registres en mode 64-bit; chez altivec: 32 registres de 128 bits). On peut aussi remarquer que neon a une operation de multiply-add, le genre de trucs que intel n'a pas mis dans SSE, ni dans SSE2, ni dans SSE3, ni dans SSSE, ni dans SSE4v1, ni dans SSE4v2, mais dans AVX (celui des futurs Sandy bridge). Et enfin, les instructions neon ONT trois opérandes: deux termes sources, une destination. Comme altivec, et contrairement à SSE. Là aussi ça permet d'économiser des tonnes de MOVAPS stupides dont la seule raison d'être est d'éviter d'écraser la précieuse valeur d'un registre. C'est encore un domaine où Intel a fini par voir la lumière puisque AVX aura des instructions à trois opérandes.

Voila voila, donc après avoir lu tout ça je me décide, avec entrain, à faire quelques tests puisque j'ai reçu un Toshiba AC100 en début de semaine, le premier netbook à base de ARM Cortex A9 (parfum tegra2), justement pour tester neon. Un netbook fourni avec android, et sur lequel je me suis quand même bien fait chier à installer une ubuntu (c'est pas facile). Et là paf, quand je lance les programmes de test c'est "Illegal Instruction" sur la première instruction neon rencontrée. Bizarre. Effectivement le /proc/cpuinfo ne fait aucune mention de neon .

Et pour cause puisque ces gros tocards de nvidia n'ont pas implementé l'unité NEON dans tegra2. Je l'ignorais.

Je vais donc maintenant frapper ce netbook avec un marteau jusqu'à ce qu'il ne reste plus que quelque misérables copeaux que je balancerai aux chiottes, je tirerai la chasse, puis j'irai me coucher.