/* * Copyright 2015 The Emscripten Authors. All rights reserved. * Emscripten is available under two separate licenses, the MIT license and the * University of Illinois/NCSA Open Source License. Both these licenses can be * found in the LICENSE file. */ #include #include class vec { public: __m128 v; void mul(float s) { __m128 vs = _mm_load_ss(&s); // __m128 vs = _mm_set_ss(s); // _mm_set_ss(s) instead of _mm_load_ss(&s) avoids the problem somehow..? v = _mm_mul_ps(v, vs); } }; int main() { vec v; v.v = _mm_set_ps(8,8,8,8); v.mul(0.5f); float f[4]; _mm_storeu_ps(f, v.v); printf("%f %f %f %f\n", f[0], f[1], f[2], f[3]); }