mirror of
https://github.com/Z3Prover/z3
synced 2025-06-05 21:53:23 +00:00
try to fix ARM32 build (#2776)
This commit is contained in:
parent
a1741e0e16
commit
e67b9ebcf7
1 changed files with 8 additions and 16 deletions
|
@ -52,10 +52,14 @@ Revision History:
|
||||||
// This is needed for _tzcnt_u32 and friends.
|
// This is needed for _tzcnt_u32 and friends.
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
#define _trailing_zeros32(X) _tzcnt_u32(X)
|
#define _trailing_zeros32(X) _tzcnt_u32(X)
|
||||||
#endif
|
#elif defined(__GNUC__)
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
#define _trailing_zeros32(X) __builtin_ctz(X)
|
#define _trailing_zeros32(X) __builtin_ctz(X)
|
||||||
|
#else
|
||||||
|
static uint32_t _trailing_zeros32(uint32_t x) {
|
||||||
|
uint32_t r = 0;
|
||||||
|
for (; 0 == (x & 1) && r < 32; ++r, x >>= 1);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(__LP64__) || defined(_WIN64)) && !defined(_M_ARM) && !defined(_M_ARM64)
|
#if (defined(__LP64__) || defined(_WIN64)) && !defined(_M_ARM) && !defined(_M_ARM64)
|
||||||
|
@ -65,23 +69,11 @@ Revision History:
|
||||||
#define _trailing_zeros64(X) _tzcnt_u64(X)
|
#define _trailing_zeros64(X) _tzcnt_u64(X)
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
inline uint64_t _trailing_zeros64(uint64_t x) {
|
static uint64_t _trailing_zeros64(uint64_t x) {
|
||||||
uint64_t r = 0;
|
uint64_t r = 0;
|
||||||
for (; 0 == (x & 1) && r < 64; ++r, x >>= 1);
|
for (; 0 == (x & 1) && r < 64; ++r, x >>= 1);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(_WINDOWS) && !defined(_M_ARM) && !defined(_M_ARM64)
|
|
||||||
// _trailing_zeros32 already defined using intrinsics
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
// _trailing_zeros32 already defined using intrinsics
|
|
||||||
#else
|
|
||||||
inline uint32_t _trailing_zeros32(uint32_t x) {
|
|
||||||
uint32_t r = 0;
|
|
||||||
for (; 0 == (x & 1) && r < 32; ++r, x >>= 1);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue