doStuff accepts a reference to non-const vec . Non-trailing links cannot bind to rvalues ββas a result of calling a function.
If you need to change v inside doStuff , then save the result _mm_set1_ps(1.0f) in an intermediate variable, then call with:
vec v = _mm_set1_ps(1.0f); doStuff(v);
If you don't need to change v , change doStuff to accept its argument by reference to const:
void doStuff(const vec &v) { }
source share