История изменений
Исправление 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