All pastes #779717 Raw Edit

Jemand

public text v1 · immutable
·published 2007-11-18 12:40 UTC
rendered paste body
inline void muladd_fmatrix_fvector(float to[3], float matrix[3][4], float from[3]) {
	__m128 v1, v2, v3, v4;
	
	v1 = _mm_load_ps(&matrix[0]);
	v2 = _mm_load_ps(&matrix[1]);
	v3 = _mm_load_ps(&matrix[2]);
	v4 = _mm_load_ps(from);

 	// stuff
	v1 = _mm_mul_ps(v1, v4);
	v2 = _mm_mul_ps(v2, v4);
	v3 = _mm_mul_ps(v3, v4);
	v1 = _mm_hadd_ps(v1, v2);
	v3 = _mm_hadd_ps(v3, _mm_setzero_ps());
	v1 = _mm_hadd_ps(v1, v3);
	
	v4 = _mm_load_ps(to);
	v4 = _mm_add_ps(v4,v1);

	_mm_store_ps(to, v4);
}