summaryrefslogtreecommitdiff
path: root/testsuite/tests/simplCore/should_run/T20203.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/simplCore/should_run/T20203.hs')
-rw-r--r--testsuite/tests/simplCore/should_run/T20203.hs64
1 files changed, 64 insertions, 0 deletions
diff --git a/testsuite/tests/simplCore/should_run/T20203.hs b/testsuite/tests/simplCore/should_run/T20203.hs
new file mode 100644
index 0000000000..ddfb06eb13
--- /dev/null
+++ b/testsuite/tests/simplCore/should_run/T20203.hs
@@ -0,0 +1,64 @@
+module T20203 where
+
+import Data.Bits
+import Data.Int
+
+bitAndInt :: Int -> Int
+bitAndInt x = (x .&. 0xFA) .&. 0xAF
+
+bitOrInt :: Int -> Int
+bitOrInt x = (x .|. 0xFA) .|. 0xAF
+
+bitAndInt8 :: Int8 -> Int8
+bitAndInt8 x = (x .&. 0x1) .&. 0x10
+
+bitOrInt8 :: Int8 -> Int8
+bitOrInt8 x = (x .|. 0x1) .|. 0x10
+
+bitAndInt16 :: Int16 -> Int16
+bitAndInt16 x = (x .&. 0xFA) .&. 0xAF
+
+bitOrInt16 :: Int16 -> Int16
+bitOrInt16 x = (x .|. 0xFA) .|. 0xAF
+
+bitAndInt32 :: Int32 -> Int32
+bitAndInt32 x = (x .&. 0xFA) .&. 0xAF
+
+bitOrInt32 :: Int32 -> Int32
+bitOrInt32 x = (x .|. 0xFA) .|. 0xAF
+
+bitAndInt64 :: Int64 -> Int64
+bitAndInt64 x = (x .&. 0xFA) .&. 0xAF
+
+bitOrInt64 :: Int64 -> Int64
+bitOrInt64 x = (x .|. 0xFA) .|. 0xAF
+
+bitAndTwoVarInt :: Int -> Int -> Int
+bitAndTwoVarInt x y = (x .&. 0xFA) .&. (y .&. 0xAF)
+
+bitOrTwoVarInt :: Int -> Int -> Int
+bitOrTwoVarInt x y = (x .|. 0xFA) .|. (y .|. 0xAF)
+
+bitAndTwoVarInt8 :: Int8 -> Int8 -> Int8
+bitAndTwoVarInt8 x y = (x .&. 0x1) .&. (y .&. 0x10)
+
+bitOrTwoVarInt8 :: Int8 -> Int8 -> Int8
+bitOrTwoVarInt8 x y = (x .|. 0x1) .|. (y .|. 0x10)
+
+bitAndTwoVarInt16 :: Int16 -> Int16 -> Int16
+bitAndTwoVarInt16 x y = (x .&. 0xFA) .&. (y .&. 0xAF)
+
+bitOrTwoVarInt16 :: Int16 -> Int16 -> Int16
+bitOrTwoVarInt16 x y = (x .|. 0xFA) .|. (y .|. 0xAF)
+
+bitAndTwoVarInt32 :: Int32 -> Int32 -> Int32
+bitAndTwoVarInt32 x y = (x .&. 0xFA) .&. (y .&. 0xAF)
+
+bitOrTwoVarInt32 :: Int32 -> Int32 -> Int32
+bitOrTwoVarInt32 x y = (x .|. 0xFA) .|. (y .|. 0xAF)
+
+bitAndTwoVarInt64 :: Int64 -> Int64 -> Int64
+bitAndTwoVarInt64 x y = (x .&. 0xFA) .&. (y .&. 0xAF)
+
+bitOrTwoVarInt64 :: Int64 -> Int64 -> Int64
+bitOrTwoVarInt64 x y = (x .|. 0xFA) .|. (y .|. 0xAF)