У меня есть код, первоначально предоставленный мне кем-то, работающим с MSVC, и я пытаюсь заставить его работать на Clang. Здесь функция, с которой у меня возникают проблемы:
float vectorGetByIndex( __m128 V, unsigned int i )
{
assert( i <= 3 );
return V.m128_f32[i];
}
Ошибка, которую я получаю, выглядит следующим образом:
Member reference has base type '__m128' is not a structure or union.
Я огляделся и обнаружил, что Clang (и, возможно, GCC) имеет проблему с обработкой __m128 как структуры или объединения. Однако мне не удалось найти прямой ответ о том, как я могу вернуть эти ценности. Я пробовал использовать оператор индекса и не мог этого сделать, и я просмотрел огромный список функций встроенного SSE и еще не нашел подходящего.