summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerbert Valerio Riedel <hvr@gnu.org>2014-12-02 17:51:36 +0100
committerHerbert Valerio Riedel <hvr@gnu.org>2014-12-02 17:51:42 +0100
commit6b063ef2a1f68290b51778a38e9b89b6fec5e170 (patch)
treec12477817e38dfff9c685da68544b14926a35bf2
parentc41d214a8dd8e2fe7ae9a3446aeda1a07328b831 (diff)
downloadhaskell-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.hs6
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)