From c8fb488b087f91ba58ac16e4e76050b660122417 Mon Sep 17 00:00:00 2001 From: "Sv. Lockal" Date: Sat, 7 Mar 2015 16:15:01 +0000 Subject: Fix T41066: An actual fix for curve intersection on FMA-enabled CPUs --- intern/cycles/util/util_ssef.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'intern/cycles/util') diff --git a/intern/cycles/util/util_ssef.h b/intern/cycles/util/util_ssef.h index a9503d60979..ca69924d13f 100644 --- a/intern/cycles/util/util_ssef.h +++ b/intern/cycles/util/util_ssef.h @@ -151,7 +151,7 @@ __forceinline ssef maxi(const ssef& a, const ssef& b) { /// Ternary Operators //////////////////////////////////////////////////////////////////////////////// -#if defined(__KERNEL_AVX2__) && !defined(_MSC_VER) // see T41066 +#if defined(__KERNEL_AVX2__) __forceinline const ssef madd (const ssef& a, const ssef& b, const ssef& c) { return _mm_fmadd_ps(a,b,c); } __forceinline const ssef msub (const ssef& a, const ssef& b, const ssef& c) { return _mm_fmsub_ps(a,b,c); } __forceinline const ssef nmadd(const ssef& a, const ssef& b, const ssef& c) { return _mm_fnmadd_ps(a,b,c); } @@ -159,8 +159,8 @@ __forceinline const ssef nmsub(const ssef& a, const ssef& b, const ssef& c) { re #else __forceinline const ssef madd (const ssef& a, const ssef& b, const ssef& c) { return a*b+c; } __forceinline const ssef msub (const ssef& a, const ssef& b, const ssef& c) { return a*b-c; } -__forceinline const ssef nmadd(const ssef& a, const ssef& b, const ssef& c) { return -a*b-c;} -__forceinline const ssef nmsub(const ssef& a, const ssef& b, const ssef& c) { return c-a*b; } +__forceinline const ssef nmadd(const ssef& a, const ssef& b, const ssef& c) { return c-a*b;} +__forceinline const ssef nmsub(const ssef& a, const ssef& b, const ssef& c) { return -a*b-c; } #endif //////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3