Mitglieder von __m128 per Index erhalten?

Habe ich einige code, ursprünglich hat mir jemand die Arbeit mit MSVC, und ich bin versucht, es zu erhalten zu arbeiten auf Clang. Hier ist die Funktion, dass ich Probleme habe mit:

float vectorGetByIndex( __m128 V, unsigned int i )
{
    assert( i <= 3 );
    return V.m128_f32[i];
}

Den Fehler den ich bekomme, ist wie folgt:

Member reference has base type '__m128' is not a structure or union.

Habe ich umgesehen und festgestellt, dass das Geräusch (und vielleicht GCC) hat ein problem mit der Behandlung von __m128 als struct oder union. Allerdings habe ich es nicht geschafft zu finden, eine klare Antwort, wie bekomme ich diese Werte wieder. Ich habe versucht, mit den subskript-operator und konnte das nicht tun, und ich habe sah rund um die riesige Liste von SSE-systeminterne Funktionen und noch nicht gefunden haben ein passendes.

InformationsquelleAutor der Frage benwad | 2012-09-27

Schreibe einen Kommentar