diff options
author | Herbert Valerio Riedel <hvr@gnu.org> | 2014-12-02 17:51:36 +0100 |
---|---|---|
committer | Herbert Valerio Riedel <hvr@gnu.org> | 2014-12-02 17:51:42 +0100 |
commit | 6b063ef2a1f68290b51778a38e9b89b6fec5e170 (patch) | |
tree | c12477817e38dfff9c685da68544b14926a35bf2 | |
parent | c41d214a8dd8e2fe7ae9a3446aeda1a07328b831 (diff) | |
download | haskell-6b063ef2a1f68290b51778a38e9b89b6fec5e170.tar.gz |
Make Natural's (.|.) really an OR operation (#9818)
Currently it's an AND when at least one of the operands is big.
Reviewed By: hvr
Differential Revision: https://phabricator.haskell.org/D549
-rw-r--r-- | libraries/base/GHC/Natural.hs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libraries/base/GHC/Natural.hs b/libraries/base/GHC/Natural.hs index 3519bcf40a..0211061a32 100644 --- a/libraries/base/GHC/Natural.hs +++ b/libraries/base/GHC/Natural.hs @@ -296,9 +296,9 @@ instance Bits Natural where NatJ# n .&. NatJ# m = bigNatToNatural (andBigNat n m) NatS# n .|. NatS# m = wordToNatural (W# n .|. W# m) - NatS# n .|. NatJ# m = NatJ# (andBigNat (wordToBigNat n) m) - NatJ# n .|. NatS# m = NatJ# (andBigNat n (wordToBigNat m)) - NatJ# n .|. NatJ# m = NatJ# (andBigNat n m) + NatS# n .|. NatJ# m = NatJ# (orBigNat (wordToBigNat n) m) + NatJ# n .|. NatS# m = NatJ# (orBigNat n (wordToBigNat m)) + NatJ# n .|. NatJ# m = NatJ# (orBigNat n m) NatS# n `xor` NatS# m = wordToNatural (W# n `xor` W# m) NatS# n `xor` NatJ# m = NatJ# (xorBigNat (wordToBigNat n) m) |