summaryrefslogtreecommitdiffstats
path: root/src/core/transforms
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2017-08-16 16:41:31 +0200
committerPaul Lemire <paul.lemire@kdab.com>2018-02-28 12:33:12 +0000
commitb8947197979f30d624454efe0467b151437dd9d3 (patch)
tree93134434fc56704e7fd94153d6b7e09ff479d878 /src/core/transforms
parent461194b0aa6b35e7dd1c9ff411806b065f8b01f7 (diff)
simd: declare AVX2 friends only if __AVX2__ defined
Change-Id: I8fd88461874367bcaa9f4b27a9b4fc660cd2a030 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/core/transforms')
-rw-r--r--src/core/transforms/transforms.pri9
-rw-r--r--src/core/transforms/vector3d_sse_p.h12
-rw-r--r--src/core/transforms/vector4d_sse_p.h12
3 files changed, 20 insertions, 13 deletions
diff --git a/src/core/transforms/transforms.pri b/src/core/transforms/transforms.pri
index f83c37a0b..36e657e86 100644
--- a/src/core/transforms/transforms.pri
+++ b/src/core/transforms/transforms.pri
@@ -31,8 +31,6 @@ qtConfig(qt3d-simd-sse2) {
CONFIG += simd
SSE2_HEADERS += \
- $$PWD/vector4d_sse_p.h \
- $$PWD/vector3d_sse_p.h \
$$PWD/matrix4x4_sse_p.h
SSE2_SOURCES += \
@@ -43,6 +41,9 @@ qtConfig(qt3d-simd-sse2) {
SSE2_SOURCES += \
$$PWD/vector4d_sse.cpp \
$$PWD/vector3d_sse.cpp
+ SSE2_HEADERS += \
+ $$PWD/vector4d_sse_p.h \
+ $$PWD/vector3d_sse_p.h
}
}
@@ -50,7 +51,9 @@ qtConfig(qt3d-simd-avx2) {
CONFIG += simd
AVX2_HEADERS += \
- $$PWD/matrix4x4_avx2_p.h
+ $$PWD/matrix4x4_avx2_p.h \
+ $$PWD/vector4d_sse_p.h \
+ $$PWD/vector3d_sse_p.h
AVX2_SOURCES += \
$$PWD/matrix4x4_avx2.cpp \
$$PWD/vector4d_sse.cpp \
diff --git a/src/core/transforms/vector3d_sse_p.h b/src/core/transforms/vector3d_sse_p.h
index a299d1db9..c7f9a403c 100644
--- a/src/core/transforms/vector3d_sse_p.h
+++ b/src/core/transforms/vector3d_sse_p.h
@@ -346,15 +346,17 @@ public:
return v;
}
- friend class Matrix4x4_AVX2;
- friend class Matrix4x4_SSE;
friend class Vector4D_SSE;
- friend QT3DCORE_PRIVATE_EXPORT Vector3D_SSE operator*(const Vector3D_SSE &vector, const Matrix4x4_SSE &matrix);
- friend QT3DCORE_PRIVATE_EXPORT Vector3D_SSE operator*(const Matrix4x4_SSE &matrix, const Vector3D_SSE &vector);
-
+#ifdef __AVX2__
+ friend class Matrix4x4_AVX2;
friend QT3DCORE_PRIVATE_EXPORT Vector3D_SSE operator*(const Vector3D_SSE &vector, const Matrix4x4_AVX2 &matrix);
friend QT3DCORE_PRIVATE_EXPORT Vector3D_SSE operator*(const Matrix4x4_AVX2 &matrix, const Vector3D_SSE &vector);
+#endif
+
+ friend class Matrix4x4_SSE;
+ friend QT3DCORE_PRIVATE_EXPORT Vector3D_SSE operator*(const Vector3D_SSE &vector, const Matrix4x4_SSE &matrix);
+ friend QT3DCORE_PRIVATE_EXPORT Vector3D_SSE operator*(const Matrix4x4_SSE &matrix, const Vector3D_SSE &vector);
friend Q_ALWAYS_INLINE const Vector3D_SSE operator+(Vector3D_SSE v1, Vector3D_SSE v2) { return v1 += v2; }
friend Q_ALWAYS_INLINE const Vector3D_SSE operator-(Vector3D_SSE v1, Vector3D_SSE v2) { return v1 -= v2; }
diff --git a/src/core/transforms/vector4d_sse_p.h b/src/core/transforms/vector4d_sse_p.h
index ffeca0946..0be5e3787 100644
--- a/src/core/transforms/vector4d_sse_p.h
+++ b/src/core/transforms/vector4d_sse_p.h
@@ -342,15 +342,17 @@ public:
#endif
}
- friend class Matrix4x4_AVX2;
friend class Matrix4x4_SSE;
- friend class Vector3D_SSE;
-
- friend Vector4D_SSE operator*(const Vector4D_SSE &vector, const Matrix4x4_SSE &matrix);
- friend Vector4D_SSE operator*(const Matrix4x4_SSE &matrix, const Vector4D_SSE &vector);
+#ifdef __AVX2__
+ friend class Matrix4x4_AVX2;
friend Vector4D_SSE operator*(const Vector4D_SSE &vector, const Matrix4x4_AVX2 &matrix);
friend Vector4D_SSE operator*(const Matrix4x4_AVX2 &matrix, const Vector4D_SSE &vector);
+#endif
+
+ friend class Vector3D_SSE;
+ friend Vector4D_SSE operator*(const Vector4D_SSE &vector, const Matrix4x4_SSE &matrix);
+ friend Vector4D_SSE operator*(const Matrix4x4_SSE &matrix, const Vector4D_SSE &vector);
friend Q_ALWAYS_INLINE const Vector4D_SSE operator+(Vector4D_SSE v1, Vector4D_SSE v2) { return v1 += v2; }
friend Q_ALWAYS_INLINE const Vector4D_SSE operator-(Vector4D_SSE v1, Vector4D_SSE v2) { return v1 -= v2; }