diff options
author | Kevin Sheppard <kevin.k.sheppard@gmail.com> | 2019-05-28 10:19:43 +0100 |
---|---|---|
committer | Kevin Sheppard <kevin.k.sheppard@gmail.com> | 2019-05-28 18:44:47 +0100 |
commit | b1b7605c68ad9d92295b2fde82f3624b4dac88c7 (patch) | |
tree | daf9474f0ccd46129d28eab7b20e5106fc6ead97 /numpy/random/src | |
parent | 22239d120f59826e8a2c758f4bee9893e835f511 (diff) | |
download | numpy-b1b7605c68ad9d92295b2fde82f3624b4dac88c7.tar.gz |
PERF: Use intrinsic rotr on Windows
Use _rotr64 on Windows to avoid compiler generated rotr instructions
Diffstat (limited to 'numpy/random/src')
-rw-r--r-- | numpy/random/src/pcg64/pcg64.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/numpy/random/src/pcg64/pcg64.h b/numpy/random/src/pcg64/pcg64.h index a28c8eaa6..80db3bbc9 100644 --- a/numpy/random/src/pcg64/pcg64.h +++ b/numpy/random/src/pcg64/pcg64.h @@ -51,6 +51,7 @@ #include <inttypes.h> #ifdef _WIN32 +#include <stdlib.h> #define inline __forceinline #endif @@ -99,7 +100,11 @@ typedef struct { } static inline uint64_t pcg_rotr_64(uint64_t value, unsigned int rot) { +#ifdef _WIN32 + return _rotr64(value, rot); +#else return (value >> rot) | (value << ((-rot) & 63)); +#endif } #ifdef PCG_EMULATED_128BIT_MATH |