Cycles: Fix missing curve hair when building with GCC-8 in release mode
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 2 Jul 2018 13:11:48 +0000 (15:11 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 2 Jul 2018 13:16:14 +0000 (15:16 +0200)
Reshuffle cast intrinsics to make XOR to operate on __m128i rather
than on __m128.

Hopefully this does not affect performance.

intern/cycles/util/util_ssef.h

index bb007ff84a92cbf580a3b837e8d5e8bb1c1451e5..e9a617bb2cc38db779649ee53926f96858f49dbd 100644 (file)
@@ -606,7 +606,7 @@ ccl_device_inline const ssef uint32_to_float(const ssei &in)
 template<size_t S1, size_t S2, size_t S3, size_t S4>
 ccl_device_inline const ssef set_sign_bit(const ssef &a)
 {
-       return a ^ cast(ssei(S1 << 31, S2 << 31, S3 << 31, S4 << 31));
+       return cast(cast(a) ^ ssei(S1 << 31, S2 << 31, S3 << 31, S4 << 31));
 }
 
 ////////////////////////////////////////////////////////////////////////////////