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

