2016-07-23 7 views
0

Ich bin Experiment mit gcc Vektor Erweiterung und ich weiß nicht, wie assign Daten auf einen Vektorgcc Vektorerweiterung assign Operator

typedef int simdScore __attribute__ ((vector_size (16))); 
simdScore x ={0,0,0,0}; 
simdScore y= {5,5,5,5}; 
x += y; 

//ERROR by compiler 
x = {1,2,3,4}; 

x = {1,2,3,4} scheint verwendbar zu sein nur für die Initialisierung, aber es ist nicht möglich, es nach der Initialisierung zu verwenden. Gibt es eine Möglichkeit, Daten in einem Vektor zu laden, ohne eine lokale variabile zu schaffen oder zu tun:

x[0] =1; 
x[1] =2; 
x[2] =3; 
x[3] =4; 

danke Ihnen allen

+0

_ "Ich experimentiere mit gcc vector extension" _ Sicher wirst du das bevorzugen gegenüber 'std :: array' vom aktuellen Standard? –

+0

Für die Übertragung können Sie 'simdScore y = 5 - (simdScore) {};' –

Antwort

1

Hat x = simdScore{1, 2, 3, 4}; Arbeit?

+0

Ist das eine Frage oder eine Antwort? (oder ein Kommentar?) –

+0

Ich versuchte das C++ wie x = simdScore (1,2,3,4); aber es funktioniert nicht. Sie Lösung ist korrekt –

+0

Ich bin mir ziemlich sicher, dass die 'x = simdScore {1, 2, 3, 4};' funktioniert nur für C++ 11 oder später. Wenn Sie es in C++ 98 tun müssen, funktioniert 'x = (simdScore) {1, 2, 3, 4}; – evan