Changeset: be76dc80750f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/be76dc80750f
Modified Files:
monetdb5/modules/mal/txtsim.c
Branch: default
Log Message:
used builtin's for popcount
diffs (20 lines):
diff --git a/monetdb5/modules/mal/txtsim.c b/monetdb5/modules/mal/txtsim.c
--- a/monetdb5/modules/mal/txtsim.c
+++ b/monetdb5/modules/mal/txtsim.c
@@ -450,10 +450,16 @@ typedef struct {
static inline int
popcount64(uint64_t x)
{
+#if defined(__GNUC__)
+ return (uint32_t) __builtin_popcountll(x);
+#elif defined(_MSC_VER)
+ return (uint32_t) __popcnt64(x);
+#else
x = (x & 0x5555555555555555ULL) + ((x >> 1) & 0x5555555555555555ULL);
x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL);
x = (x & 0x0F0F0F0F0F0F0F0FULL) + ((x >> 4) & 0x0F0F0F0F0F0F0F0FULL);
return (x * 0x0101010101010101ULL) >> 56;
+#endif
}
static int
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]