Skip to content

Commit 56daf17

Browse files
committed
simd pd
1 parent d687734 commit 56daf17

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

inc/vector_math/matrix4f.hpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
#pragma once
22

3+
#if defined(__x86__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_X64)
4+
#define __VECTOR_MATH_ARCH_X86_X64
5+
#undef __VECTOR_MATH_ARCH_ARM
6+
#endif
7+
8+
#if defined(__arm__) || defined(__arm64__)
9+
#undef __VECTOR_MATH_ARCH_X86_X64
10+
#define __VECTOR_MATH_ARCH_ARM
11+
#endif
12+
313
#if defined(__x86__) || defined(__x86_64__)
414
// do x64 stuff
515
#include <intrin.h>
@@ -36,7 +46,7 @@ namespace systems::leal::vector_math
3646
};
3747

3848
Matrix4f Matrix4f::operator*(const Matrix4f &rhs) const {
39-
#if defined(__x86__) || defined(__x86_64__)
49+
#ifdef __VECTOR_MATH_ARCH_X86_X64
4050
Matrix4f toReturn;
4151
auto transposed = rhs.transpose();
4252
alignas(float) float result[4];
@@ -61,14 +71,14 @@ namespace systems::leal::vector_math
6171
plhs += 4;
6272
}
6373
return toReturn;
64-
#elif defined(__arm__) || defined(__arm64__)
74+
#elif __VECTOR_MATH_ARCH_ARM
6575
auto toReturn = ((Matrix4<float> *)this)->operator*(rhs);
6676
return *(Matrix4f *)&toReturn;
6777
#endif
6878
}
6979

7080
Vector4f Matrix4f::operator*(const Vector4f &rhs) const {
71-
#if defined(__x86__) || defined(__x86_64__)
81+
#ifdef __VECTOR_MATH_ARCH_X86_X64
7282
Vector4f toReturn;
7383
alignas(float) float result[4];
7484

@@ -89,7 +99,7 @@ namespace systems::leal::vector_math
8999
plhs += 4;
90100
}
91101
return toReturn;
92-
#elif defined(__arm__) || defined(__arm64__)
102+
#elif __VECTOR_MATH_ARCH_ARM
93103
auto toReturn = ((Matrix4<float> *)this)->operator*(rhs);
94104
return *(Vector4f *)&toReturn;
95105
#endif

0 commit comments

Comments
 (0)