1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
From e46031a4a4ceae5d3aa02cc468497010609fd948 Mon Sep 17 00:00:00 2001
From: Tim Blechmann <tim.blechmann@qt.io>
Date: Tue, 4 Mar 2025 12:01:01 +0800
Subject: [PATCH] PhysX: clang-cl compile fix
---
.../source/foundation/include/windows/PsWindowsInlineAoS.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/3rdparty/PhysX/source/foundation/include/windows/PsWindowsInlineAoS.h b/src/3rdparty/PhysX/source/foundation/include/windows/PsWindowsInlineAoS.h
index d538969..b68de7f 100644
--- a/src/3rdparty/PhysX/source/foundation/include/windows/PsWindowsInlineAoS.h
+++ b/src/3rdparty/PhysX/source/foundation/include/windows/PsWindowsInlineAoS.h
@@ -3043,7 +3043,7 @@ PX_FORCE_INLINE VecU16V V4U16CompareGt(VecU16V a, VecU16V b)
// _mm_cmpgt_epi16 doesn't work for unsigned values unfortunately
// return m128_I2F(_mm_cmpgt_epi16(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b)));
VecU16V result;
-#ifdef __INTEL_LLVM_COMPILER
+#if defined(__INTEL_LLVM_COMPILER) || defined(_MSC_VER) && defined(__clang__)
result[0] = PxU16(a[0] > b[0]);
result[1] = PxU16(a[1] > b[1]);
result[2] = PxU16(a[2] > b[2]);
@@ -3073,7 +3073,7 @@ PX_FORCE_INLINE VecU16V V4I16CompareGt(VecU16V a, VecU16V b)
PX_FORCE_INLINE Vec4V Vec4V_From_VecU32V(VecU32V a)
{
-#ifdef __INTEL_LLVM_COMPILER
+#if defined(__INTEL_LLVM_COMPILER) || defined(_MSC_VER) && defined(__clang__)
Vec4V result = V4LoadXYZW(PxF32(a[0]), PxF32(a[1]), PxF32(a[2]), PxF32(a[3]));
#else
Vec4V result = V4LoadXYZW(PxF32(a.m128_u32[0]), PxF32(a.m128_u32[1]), PxF32(a.m128_u32[2]), PxF32(a.m128_u32[3]));
@@ -3128,7 +3128,7 @@ PX_FORCE_INLINE Vec4V V4SplatElement(Vec4V a)
PX_FORCE_INLINE VecU32V U4LoadXYZW(PxU32 x, PxU32 y, PxU32 z, PxU32 w)
{
VecU32V result;
-#ifdef __INTEL_LLVM_COMPILER
+#if defined(__INTEL_LLVM_COMPILER) || defined(_MSC_VER) && defined(__clang__)
result[0] = x;
result[1] = y;
result[2] = z;
--
2.47.1.windows.1
|