x86 В Clang есть ошибка, о которой я сообщил еще в 2013 году. Она подтверждена, но они так и не исправили ее. Что я могу сделать, чтобы они это исправили?
Отчет об ошибке здесь: https://bugs.llvm.org/show_bug.cgi?id=17164
Описание:
__m128 x; // vector of four float
__m128i y; // vector of four int
x = y; // does not convert int to float but preserves the bits
Внутренние типы векторов, такие как __m128, __m128i, __m128d, бесшумно приводятся друг к другу в битах, что дает странные результаты. Все остальные компиляторы рассматривают эти векторные типы как разные типы. Нет никакой опции, которая делает Clang совместимым с другими компиляторами для встроенных векторных типов.
Это большая проблема для библиотеки классов Vector (https://www.agner.org/optimize/#vectorclass). Я не знаю, что делать, чтобы они исправили эту ошибку. Пожалуйста, помогите.