Copyright | (c) Bryan O'Sullivan 2009 |
---|---|
License | BSD-style |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell98 |
Warning: this is an internal module, and does not have a stable API or name. Functions in this module may not check or enforce preconditions expected by public modules. Use at your own risk!
Fast, unchecked bit shifting functions.
Synopsis
- class UnsafeShift a where
Documentation
class UnsafeShift a where Source #
This is a workaround for poor optimisation in GHC 6.8.2. It fails to notice constant-width shifts, and adds a test and branch to every shift. This imposes about a 10% performance hit.
These functions are undefined when the amount being shifted by is greater than the size in bits of a machine Int#.
Instances
UnsafeShift Int # | |
UnsafeShift Word16 # | |
UnsafeShift Word32 # | |
UnsafeShift Word64 # | |