LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Но это что-то новое и не оч. кроссплатформенное?

Поддерживается только clang. Есть еще расширение gcc для векторов, оно чуть менее удобное, но поддерживается и gcc и clang. Сами расширения довольно старые.

vec3 add(vec3 a, vec3 b)
vec3 add2(vec3 a, vec3 b)
дает один и тот же ассебл. код, я так понимаю.

Да, ну и пример что можно обращаться по разному к этим векторам. В том числе делать вот так

vec3 a;
vec2 b;
b = a.yz;

И вот еще тебе пример по упаковке структур в регистры: https://godbolt.org/z/hscdbTW8e

Исходная версия MOPKOBKA, :

Но это что-то новое и не оч. кроссплатформенное?

Поддерживается только clang. Есть еще расширение gcc для векторов, оно чуть менее удобное, но поддерживается и gcc и clang.

vec3 add(vec3 a, vec3 b)
vec3 add2(vec3 a, vec3 b)
дает один и тот же ассебл. код, я так понимаю.

Да, ну и пример что можно обращаться по разному к этим векторам. В том числе делать вот так

vec3 a;
vec2 b;
b = a.yz;

И вот еще тебе пример по упаковке структур в регистры: https://godbolt.org/z/hscdbTW8e