SSE (SIMD) Скалярно-векторное умножение GCC 8 - PullRequest
0 голосов
/ 28 декабря 2018

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

__m128 = float + __m128 * (__m128 - float)

Однако ни GCC8, ни LLVM6 никогда не жаловались ивывод выглядел, как и ожидалось.

Замена числа с плавающей точкой на то, что должно идти туда (_mm_set1_ps(float)), кажется, медленнее вычислять (в цикле, где число с плавающей запятой устанавливается на каждой итерации).

Что там происходит ?Первая версия безопасна (портативна / совместима)?(Этот код был в производстве в течение нескольких месяцев, никто не жаловался).

...