diff options
author | Sergey Sharybin <sergey@blender.org> | 2022-02-11 17:36:05 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2022-02-11 17:36:05 +0300 |
commit | 41ef1ac2da0cbcd4aa4e0d823f7d682df1883ea5 (patch) | |
tree | 7ceba55cdb53a2a6e51bbf531697564085867cde /intern/cycles | |
parent | 1695d38989fd482d3c010dc9ba4b0cb8e07a7139 (diff) | |
parent | 9ac1735205632589b49d87b6fb6c376dc603955b (diff) |
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/util/math.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/intern/cycles/util/math.h b/intern/cycles/util/math.h index 2bfd4ba19b6..5f047f6f3f4 100644 --- a/intern/cycles/util/math.h +++ b/intern/cycles/util/math.h @@ -935,9 +935,15 @@ ccl_device_inline uint prev_power_of_two(uint x) ccl_device_inline uint32_t reverse_integer_bits(uint32_t x) { /* Use a native instruction if it exists. */ -#if defined(__arm__) || defined(__aarch64__) +#if defined(__aarch64__) || defined(_M_ARM64) + /* Assume the rbit is always available on 64bit ARM architecture. */ __asm__("rbit %w0, %w1" : "=r"(x) : "r"(x)); return x; +#elif defined(__arm__) && ((__ARM_ARCH > 7) || __ARM_ARCH == 6 && __ARM_ARCH_ISA_THUMB >= 2) + /* This ARM instruction is available in ARMv6T2 and above. + * This 32-bit Thumb instruction is available in ARMv6T2 and above. */ + __asm__("rbit %0, %1" : "=r"(x) : "r"(x)); + return x; #elif defined(__KERNEL_CUDA__) return __brev(x); #elif defined(__KERNEL_METAL__) |