[Git][ghc/ghc][wip/angerman/sized] Fix T8832
Moritz Angermann
gitlab at gitlab.haskell.org
Mon Nov 2 13:47:38 UTC 2020
Moritz Angermann pushed to branch wip/angerman/sized at Glasgow Haskell Compiler / GHC
Commits:
f42424ad by Moritz Angermann at 2020-11-02T13:47:24+00:00
Fix T8832
- - - - -
2 changed files:
- libraries/base/GHC/Word.hs
- testsuite/tests/simplCore/should_compile/T8832.stdout
Changes:
=====================================
libraries/base/GHC/Word.hs
=====================================
@@ -183,8 +183,7 @@ instance Bits Word8 where
(W8# x#) .&. (W8# y#) = W8# (narrowWord8# ((extendWord8# x#) `and#` (extendWord8# y#)))
(W8# x#) .|. (W8# y#) = W8# (narrowWord8# ((extendWord8# x#) `or#` (extendWord8# y#)))
(W8# x#) `xor` (W8# y#) = W8# (narrowWord8# ((extendWord8# x#) `xor#` (extendWord8# y#)))
- complement (W8# x#) = W8# (narrowWord8# ((extendWord8# x#) `xor#` (extendWord8# mb#)))
- where !(W8# mb#) = maxBound
+ complement (W8# x#) = W8# (narrowWord8# (not# (extendWord8# x#)))
(W8# x#) `shift` (I# i#)
| isTrue# (i# >=# 0#) = W8# (narrowWord8# ((extendWord8# x#) `shiftL#` i#))
| otherwise = W8# (narrowWord8# ((extendWord8# x#) `shiftRL#` negateInt# i#))
@@ -375,8 +374,7 @@ instance Bits Word16 where
(W16# x#) .&. (W16# y#) = W16# (narrowWord16# ((extendWord16# x#) `and#` (extendWord16# y#)))
(W16# x#) .|. (W16# y#) = W16# (narrowWord16# ((extendWord16# x#) `or#` (extendWord16# y#)))
(W16# x#) `xor` (W16# y#) = W16# (narrowWord16# ((extendWord16# x#) `xor#` (extendWord16# y#)))
- complement (W16# x#) = W16# (narrowWord16# ((extendWord16# x#) `xor#` (extendWord16# mb#)))
- where !(W16# mb#) = maxBound
+ complement (W16# x#) = W16# (narrowWord16# (not# (extendWord16# x#)))
(W16# x#) `shift` (I# i#)
| isTrue# (i# >=# 0#) = W16# (narrowWord16# ((extendWord16# x#) `shiftL#` i#))
| otherwise = W16# (narrowWord16# ((extendWord16# x#) `shiftRL#` negateInt# i#))
@@ -613,8 +611,7 @@ instance Bits Word32 where
(W32# x#) .&. (W32# y#) = W32# (narrowWord32# ((extendWord32# x#) `and#` (extendWord32# y#)))
(W32# x#) .|. (W32# y#) = W32# (narrowWord32# ((extendWord32# x#) `or#` (extendWord32# y#)))
(W32# x#) `xor` (W32# y#) = W32# (narrowWord32# ((extendWord32# x#) `xor#` (extendWord32# y#)))
- complement (W32# x#) = W32# (narrowWord32# ((extendWord32# x#) `xor#` (extendWord32# mb#)))
- where !(W32# mb#) = maxBound
+ complement (W32# x#) = W32# (narrowWord32# (not# (extendWord32# x#)))
(W32# x#) `shift` (I# i#)
| isTrue# (i# >=# 0#) = W32# (narrowWord32# ((extendWord32# x#) `shiftL#` i#))
| otherwise = W32# (narrowWord32# ((extendWord32# x#) `shiftRL#` negateInt# i#))
@@ -975,8 +972,7 @@ instance Bits Word64 where
(W64# x#) .&. (W64# y#) = W64# (x# `and#` y#)
(W64# x#) .|. (W64# y#) = W64# (x# `or#` y#)
(W64# x#) `xor` (W64# y#) = W64# (x# `xor#` y#)
- complement (W64# x#) = W64# (x# `xor#` mb#)
- where !(W64# mb#) = maxBound
+ complement (W64# x#) = W64# (not# x#)
(W64# x#) `shift` (I# i#)
| isTrue# (i# >=# 0#) = W64# (x# `shiftL#` i#)
| otherwise = W64# (x# `shiftRL#` negateInt# i#)
=====================================
testsuite/tests/simplCore/should_compile/T8832.stdout
=====================================
@@ -4,8 +4,8 @@ i16 = GHC.Int.I16# (GHC.Prim.narrowInt16# 0#)
i32 = GHC.Int.I32# (GHC.Prim.narrowInt32# 0#)
i64 = GHC.Int.I64# 0#
w = GHC.Types.W# 0##
-w8 = GHC.Word.W8# 0##
-w16 = GHC.Word.W16# 0##
-w32 = GHC.Word.W32# 0##
+w8 = GHC.Word.W8# (GHC.Prim.narrowWord8# 0##)
+w16 = GHC.Word.W16# (GHC.Prim.narrowWord16# 0##)
+w32 = GHC.Word.W32# (GHC.Prim.narrowWord32# 0##)
w64 = GHC.Word.W64# 0##
z = 0
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/f42424ad9b7daacce022c5d0d46553afae45e361
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/f42424ad9b7daacce022c5d0d46553afae45e361
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20201102/8536464c/attachment-0001.html>
More information about the ghc-commits
mailing list