[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