Какое влияние оказывает -fno-honor-nans на сравнения? - PullRequest
0 голосов
/ 28 января 2020

Если я скомпилирую код с плавающей запятой в clang с параметром -fno-honor-nans, как это повлияет на сравнение?

Для следующего предположим:

  • a это не-нано-число с плавающей точкой
  • b это нано
  • c другое отличное нано

Я представляю себе, сравнения a > b, b > a и b == c "больше не будут работать должным образом".

Однако как насчет b == b?

Есть ли способ проверить, является ли указанное значение c значением nan с -fno-honor-nans?


Чтобы предвидеть вопрос: мне нужно использовать -fno-honor-nans, чтобы включить векторизацию в clang, но все еще хочу обрабатывать nans в моем коде.

Я пытался экспериментировать немного с компилятором, чтобы увидеть, как он обрабатывает вышеупомянутые случаи, но мои тесты продолжают оптимизироваться ... Мой скомпилированный код вообще не содержит никаких сравнений.

...