2015-04-24 15 views
9

tôi đã nhận lỗi biên dịch:
lệnh không được công nhận dòng tùy chọn '-mfpu = neon'
khi cố gắng biên dịch với -mfpu = neon cờ. Trên thực tế, bất kỳ tùy chọn 'mfpu' nào tôi đã thử không thành công. Tuy nhiên trong tài liệu, cờ này được đề cập, vì vậy nó phải hợp lệgcc; arm64; aarch64; không được công nhận dòng lệnh tùy chọn '-mfpu = neon'

Điều gì là sai với khóa này? Làm thế nào tôi có thể yêu cầu trình biên dịch sử dụng NEON?

Công cụ Linux Linaro GNU aarch64 4.8 được sử dụng.

Cảm ơn.

+1

Trong tài liệu được đề cập ở đâu? [Tôi không thấy ở đó] (https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/AArch64-Options.html#AArch64-Options) (nhưng tôi thấy tùy chọn tính năng SIMD có liên quan) ...) – Notlikethat

+0

thử -mfpu = 'neon' –

+0

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

Trả lời

17

SIMD nâng cao (hay còn gọi là NEON) là bắt buộc đối với AArch64, vì vậy không cần tùy chọn dòng lệnh để hướng dẫn trình biên dịch sử dụng NEON.

Nếu bạn muốn bật tối ưu hóa vectơ tự động để trình biên dịch tự động sử dụng các chỉ lệnh NEON, sau đó biên dịch với -O3 hoặc -O2 -ftree-vectorize.

Các phụ trợ AArch64 và ARM hoàn toàn tách biệt trong gcc. ARM back end chỉ nhắm vào các bộ hướng dẫn ARM 32 bit truyền thống (ARM, Thumb, Thumb-2). Điều này trái ngược với tình huống với x86, nơi mà việc tạo mã 32 bit và 64 bit được kết hợp thành một đầu cuối GCC duy nhất.

Các vấn đề liên quan