You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
52 lines
1.1 KiB
52 lines
1.1 KiB
#include "precompiled.h" |
|
#include "sse_vec4.h" |
|
|
|
void test_shufps(const glm::sse::vec4& v1, const glm::sse::vec4& v2) |
|
{ |
|
glm::sse::vec4 Result0; |
|
__asm |
|
{ |
|
mov esi, v1 |
|
mov edi, v2 |
|
movaps xmm0, [esi] |
|
movaps xmm1, [edi] |
|
shufps xmm0, xmm1, _MM_SHUFFLE(3, 2, 1, 0) |
|
movaps Result0, xmm0 |
|
} |
|
|
|
glm::sse::vec4 Result1; |
|
__asm |
|
{ |
|
mov esi, v1 |
|
mov edi, v2 |
|
movaps xmm2, [esi] |
|
movaps xmm3, [edi] |
|
pshufd xmm2, xmm3, _MM_SHUFFLE(3, 2, 1, 0) |
|
movaps Result1, xmm2 |
|
} |
|
|
|
glm::sse::vec4 end; |
|
} |
|
|
|
void test_sse_vec4() |
|
{ |
|
test_shufps( |
|
glm::sse::vec4(1.0f, 2.0f, 3.0f, 4.0f), |
|
glm::sse::vec4(5.0f, 6.0f, 7.0f, 8.0f)); |
|
|
|
glm::sse::vec4 v0; |
|
glm::sse::vec4 v1(76.f); |
|
glm::sse::vec4 v2(5.f, 1.f, 2.f, 3.f); |
|
v2 += v1; |
|
glm::sse::vec4 v3 = v2; |
|
glm::sse::vec4 v4(1.0f); |
|
float dot = glm::sse::dot(v4, v1); |
|
++v4; |
|
glm::sse::vec4 v5 = -v4; |
|
glm::sse::vec4 v6(2.f); |
|
glm::sse::vec4 v7 = glm::sse::cross(v2, v6); |
|
glm::vec3 v8 = glm::cross(glm::vec3(5.f, 1.f, 2.f), glm::vec3(2.f)); |
|
printf("vec4(%f, %f, %f, %f)\n", v4.x, v4.y, v4.z, v4.w); |
|
glm::sse::vec4 v9 = glm::sse::normalize(glm::sse::vec4(1.0f, 1.0f, 1.0f, 0.0f)); |
|
glm::sse::vec4 vx; |
|
}
|
|
|