Я хочу использовать инструкции SVE для округа FP32 до FP16. Документы ARM говорят, что инструкции SVE будут окружить в соответствии с текущим режимом округления. Итак, мне нужно установить режим округления, так как я не знаю, какой код запускался до моего. >
Доступ к среде с плавающей точкой и модификация имеет значение только тогда, когда поддерживается #pragma stdc fenv_access и устанавливается на. < /p>
< /blockquote>
Но, если я посмотрю на другую страницу на CPPReerference: < /p>
Язычный стандарт ISO C ++ не требует, чтобы компиляторы поддерживали любые прагмы. br /> < /blockquote>
ОК, поэтому мне нужно использовать прагму, но стандарт не требует компиляторов для поддержки любых прагм. Конечно, по крайней мере, Clang поддерживает его, верно? br /> < /blockquote>
Кроме того, CppReference говорит, что если я подашу эту ошибку и включите Pragma fenv_access, это сделает весь мой код медленнее: < /p>
Оптимизация, которая может подорвать тесты флага и изменения режима (например, глобальная общая суб -экспрессия, движение кода и постоянное складывание) запрещены. < /p>
< /blockquote>
С другой стороны, мне нужно изменить среду с плавающей точкой. Мне нужно правильно работать. < /P>
Что мне здесь делать? В настоящее время я просто не устанавливаю прагму и надеюсь на лучшее, но каково правильное решение?
Подробнее здесь: https://stackoverflow.com/questions/793 ... env-access
#pragma stdc fenv_access ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Применение @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) к полю не работает
Anonymous » » в форуме JAVA - 0 Ответы
- 109 Просмотры
-
Последнее сообщение Anonymous
-