Ich mag NEON Vektorisierung auf meinem ARM Cortex-A9 ermöglichen, aber ich habe diese Ausgabe bei der Kompilierung:ARM NEON Vektorisierung Ausfall
„nicht vektorisiert: relevant Anw nicht unterstützt: D.14140_82 = D.14143_77 * D.14141_81"
Hier ist meine Schleife:
void my_mul(float32_t * __restrict data1, float32_t * __restrict data2, float32_t * __restrict out){
for(int i=0; i<SIZE*4; i+=1){
out[i] = data1[i]*data2[i];
}
}
Und die bei der Kompilierung verwendeten Optionen:
-march=armv7-a -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -mvectorize-with-neon-quad -ftree-vectorizer-verbose=2
Ich benutze arm-linux-gnueabi (v4.6) Compiler.
Es ist wichtig zu beachten, dass das Problem nur mit float32 Vektoren auftritt. Wenn ich int32 umschalte, dann ist die Vektorisierung erfolgt. Vielleicht ist die Vektorisierung für float32 noch nicht verfügbar ...
Hat jemand eine Idee? Vergesse ich etwas in der CMD-Zeile oder in meiner Implementierung?
Vielen Dank im Voraus für Ihre Hilfe.
Guix
Danke, 'funssafe-math-optimizations' macht den Trick! – user2092113