2015-04-24 16 views
9

Ich habe Kompilierungsfehler:
unerkannt Kommandozeilenoption '-mfpu = neon'
, wenn sie mit -mfpu = Neon-Flag zu kompilieren versucht. Eigentlich, alle 'Mfpu' Optionen, die ich versuchte fehlgeschlagen. In der Dokumentation wird dieses Flag jedoch erwähnt, daher sollte es gültig seingcc; Arm64; aarch64; unerkannt Befehlszeilenoption '-mfpu = neon'

Was ist falsch an diesem Schlüssel? Wie kann ich dem Compiler mitteilen, NEON zu verwenden?

Linaro GNU aarch64 Linux-Tools 4.8 werden verwendet.

Danke.

+1

Wo in der Dokumentation ist es erwähnt? [Ich sehe es dort nicht] (https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/AArch64-Optionen.html#AArch64-Options) (aber ich sehe die relevante SIMD Feature-Option ...) – Notlikethat

+0

try -mfpu = 'neon' –

+0

@Notlikethat Siehe https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html –

Antwort

17

Advanced SIMD (aka NEON) ist für AArch64 obligatorisch, daher wird keine Befehlszeilenoption benötigt, um den Compiler zur Verwendung von NEON anzuleiten.

Wenn Sie automatische Vektorisierungsoptimierungen aktivieren möchten, sodass der Compiler automatisch NEON-Anweisungen verwendet, kompilieren Sie mit -O3 oder -O2 -ftree-vectorize.

Die AArch64- und ARM-Backends sind in gcc vollständig getrennt. Das ARM-Back-End zielt nur auf die traditionellen 32-Bit-ARM-Befehlssätze ab (ARM, Thumb, Thumb-2). Dies steht im Gegensatz zu der Situation bei x86, bei der die 32- und 64-Bit-Codegenerierung zu einem einzigen GCC-Backend kombiniert wird.