diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp index a8b9fe0d52b..84d036b22bf 100644 --- a/intern/cycles/bvh/bvh_build.cpp +++ b/intern/cycles/bvh/bvh_build.cpp @@ -34,21 +34,6 @@ CCL_NAMESPACE_BEGIN -#if !defined(__KERNEL_SSE2__) -/* TODO(sergey): Move to some generic header so all code - * can use bitscan on non-SSE processors. - */ -ccl_device_inline int bitscan(int value) -{ - assert(value != 0); - int bit = 0; - while(value >>= 1) { - ++bit; - } - return bit; -} -#endif - /* BVH Build Task */ class BVHBuildTask : public Task { diff --git a/intern/cycles/util/util_simd.h b/intern/cycles/util/util_simd.h index a1c35b7174d..36da1550a94 100644 --- a/intern/cycles/util/util_simd.h +++ b/intern/cycles/util/util_simd.h @@ -430,6 +430,23 @@ __forceinline __int64 _mm_extract_epi64( __m128i input, const int index ) { #endif +#else /* __KERNEL_SSE2__ */ + +/* This section is for utility functions which operates on non-register data + * which might be used from a non-vectorized code. + */ + +ccl_device_inline int bitscan(int value) +{ + assert(value != 0); + int bit = 0; + while(value >>= 1) { + ++bit; + } + return bit; +} + + #endif /* __KERNEL_SSE2__ */ CCL_NAMESPACE_END