sse_vec4.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "precompiled.h"
  2. #include "sse_vec4.h"
  3. /*
  4. void test_shufps(const glm::sse::vec4& v1, const glm::sse::vec4& v2)
  5. {
  6. glm::sse::vec4 Result0;
  7. __asm
  8. {
  9. mov esi, v1
  10. mov edi, v2
  11. movaps xmm0, [esi]
  12. movaps xmm1, [edi]
  13. shufps xmm0, xmm1, _MM_SHUFFLE(3, 2, 1, 0)
  14. movaps Result0, xmm0
  15. }
  16. glm::sse::vec4 Result1;
  17. __asm
  18. {
  19. mov esi, v1
  20. mov edi, v2
  21. movaps xmm2, [esi]
  22. movaps xmm3, [edi]
  23. pshufd xmm2, xmm3, _MM_SHUFFLE(3, 2, 1, 0)
  24. movaps Result1, xmm2
  25. }
  26. glm::sse::vec4 end;
  27. }
  28. void test_sse_vec4()
  29. {
  30. test_shufps(
  31. glm::sse::vec4(1.0f, 2.0f, 3.0f, 4.0f),
  32. glm::sse::vec4(5.0f, 6.0f, 7.0f, 8.0f));
  33. glm::sse::vec4 v0;
  34. glm::sse::vec4 v1(76.f);
  35. glm::sse::vec4 v2(5.f, 1.f, 2.f, 3.f);
  36. v2 += v1;
  37. glm::sse::vec4 v3 = v2;
  38. glm::sse::vec4 v4(1.0f);
  39. float dot = glm::sse::dot(v4, v1);
  40. ++v4;
  41. glm::sse::vec4 v5 = -v4;
  42. glm::sse::vec4 v6(2.f);
  43. glm::sse::vec4 v7 = glm::sse::cross(v2, v6);
  44. glm::vec3 v8 = glm::cross(glm::vec3(5.f, 1.f, 2.f), glm::vec3(2.f));
  45. //printf("vec4(%f, %f, %f, %f)\n", v4.x, v4.y, v4.z, v4.w);
  46. glm::sse::vec4 v9 = glm::sse::normalize(glm::sse::vec4(1.0f, 1.0f, 1.0f, 0.0f));
  47. glm::sse::vec4 vx;
  48. }
  49. */