diff options
author | Sylvain Henry <sylvain@haskus.fr> | 2021-06-17 12:15:53 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-06-23 20:34:23 -0400 |
commit | e2d8023dfe1f2f981fc77fe3decd907352592f26 (patch) | |
tree | bf6727dc7ec5bec55123700ee88bdc06bf18512f /testsuite/tests/primops/should_run | |
parent | 8191785ed7a28ed7a797990ce8851034162d68bd (diff) | |
download | haskell-e2d8023dfe1f2f981fc77fe3decd907352592f26.tar.gz |
Add some tests for sized primops
Diffstat (limited to 'testsuite/tests/primops/should_run')
-rw-r--r-- | testsuite/tests/primops/should_run/Sized.hs | 272 | ||||
-rw-r--r-- | testsuite/tests/primops/should_run/Sized.stdout | 1311 | ||||
-rw-r--r-- | testsuite/tests/primops/should_run/all.T | 1 |
3 files changed, 1584 insertions, 0 deletions
diff --git a/testsuite/tests/primops/should_run/Sized.hs b/testsuite/tests/primops/should_run/Sized.hs new file mode 100644 index 0000000000..55358e92a9 --- /dev/null +++ b/testsuite/tests/primops/should_run/Sized.hs @@ -0,0 +1,272 @@ +{-# LANGUAGE MagicHash #-} +{-# LANGUAGE BlockArguments #-} +{-# LANGUAGE RecordWildCards #-} + +-- | Test sized primops (Int8#, Word16#, etc.) +module Main where + +import GHC.Exts +import GHC.Word +import GHC.Int +import GHC.Num.Integer +import Control.Monad + +data N a = N + { name :: String + , min_bound :: a + , max_bound :: a + , signed :: Bool + , nbits :: Word + , shift_right_logical :: a -> Word -> a + , shift_right_arith :: Maybe (a -> Word -> a) + , shift_left :: a -> Word -> a + , eq :: a -> a -> Bool + , gt :: a -> a -> Bool + , ge :: a -> a -> Bool + , lt :: a -> a -> Bool + , le :: a -> a -> Bool + , from_integer :: Integer -> a + , mbit_and :: Maybe (a -> a -> a) + , mbit_or :: Maybe (a -> a -> a) + , mbit_xor :: Maybe (a -> a -> a) + } + +w8 :: N Word8 +w8 = N + { name = "W8" + , min_bound = minBound + , max_bound = maxBound + , signed = False + , nbits = 8 + , shift_right_logical = \(W8# a) (W# n) -> W8# (uncheckedShiftRLWord8# a (word2Int# n)) + , shift_right_arith = Nothing + , shift_left = \(W8# a) (W# n) -> W8# (uncheckedShiftLWord8# a (word2Int# n)) + , eq = \(W8# a) (W8# b) -> isTrue# (eqWord8# a b) + , gt = \(W8# a) (W8# b) -> isTrue# (gtWord8# a b) + , ge = \(W8# a) (W8# b) -> isTrue# (geWord8# a b) + , lt = \(W8# a) (W8# b) -> isTrue# (ltWord8# a b) + , le = \(W8# a) (W8# b) -> isTrue# (leWord8# a b) + , from_integer = fromIntegral + , mbit_and = Just \(W8# a) (W8# b) -> W8# (andWord8# a b) + , mbit_or = Just \(W8# a) (W8# b) -> W8# (orWord8# a b) + , mbit_xor = Just \(W8# a) (W8# b) -> W8# (xorWord8# a b) + } + +w16 :: N Word16 +w16 = N + { name = "W16" + , min_bound = minBound + , max_bound = maxBound + , signed = False + , nbits = 16 + , shift_right_logical = \(W16# a) (W# n) -> W16# (uncheckedShiftRLWord16# a (word2Int# n)) + , shift_right_arith = Nothing + , shift_left = \(W16# a) (W# n) -> W16# (uncheckedShiftLWord16# a (word2Int# n)) + , eq = \(W16# a) (W16# b) -> isTrue# (eqWord16# a b) + , gt = \(W16# a) (W16# b) -> isTrue# (gtWord16# a b) + , ge = \(W16# a) (W16# b) -> isTrue# (geWord16# a b) + , lt = \(W16# a) (W16# b) -> isTrue# (ltWord16# a b) + , le = \(W16# a) (W16# b) -> isTrue# (leWord16# a b) + , from_integer = fromIntegral + , mbit_and = Just \(W16# a) (W16# b) -> W16# (andWord16# a b) + , mbit_or = Just \(W16# a) (W16# b) -> W16# (orWord16# a b) + , mbit_xor = Just \(W16# a) (W16# b) -> W16# (xorWord16# a b) + } + +w32 :: N Word32 +w32 = N + { name = "W32" + , min_bound = minBound + , max_bound = maxBound + , signed = False + , nbits = 32 + , shift_right_logical = \(W32# a) (W# n) -> W32# (uncheckedShiftRLWord32# a (word2Int# n)) + , shift_right_arith = Nothing + , shift_left = \(W32# a) (W# n) -> W32# (uncheckedShiftLWord32# a (word2Int# n)) + , eq = \(W32# a) (W32# b) -> isTrue# (eqWord32# a b) + , gt = \(W32# a) (W32# b) -> isTrue# (gtWord32# a b) + , ge = \(W32# a) (W32# b) -> isTrue# (geWord32# a b) + , lt = \(W32# a) (W32# b) -> isTrue# (ltWord32# a b) + , le = \(W32# a) (W32# b) -> isTrue# (leWord32# a b) + , from_integer = fromIntegral + , mbit_and = Just \(W32# a) (W32# b) -> W32# (andWord32# a b) + , mbit_or = Just \(W32# a) (W32# b) -> W32# (orWord32# a b) + , mbit_xor = Just \(W32# a) (W32# b) -> W32# (xorWord32# a b) + } + + +i8 :: N Int8 +i8 = N + { name = "I8" + , min_bound = minBound + , max_bound = maxBound + , signed = True + , nbits = 8 + , shift_right_logical = \(I8# a) (W# n) -> I8# (uncheckedShiftRLInt8# a (word2Int# n)) + , shift_right_arith = Just \(I8# a) (W# n) -> I8# (uncheckedShiftRAInt8# a (word2Int# n)) + , shift_left = \(I8# a) (W# n) -> I8# (uncheckedShiftLInt8# a (word2Int# n)) + , eq = \(I8# a) (I8# b) -> isTrue# (eqInt8# a b) + , gt = \(I8# a) (I8# b) -> isTrue# (gtInt8# a b) + , ge = \(I8# a) (I8# b) -> isTrue# (geInt8# a b) + , lt = \(I8# a) (I8# b) -> isTrue# (ltInt8# a b) + , le = \(I8# a) (I8# b) -> isTrue# (leInt8# a b) + , from_integer = fromIntegral + , mbit_and = Nothing + , mbit_or = Nothing + , mbit_xor = Nothing + } + +i16 :: N Int16 +i16 = N + { name = "I16" + , min_bound = minBound + , max_bound = maxBound + , signed = True + , nbits = 16 + , shift_right_logical = \(I16# a) (W# n) -> I16# (uncheckedShiftRLInt16# a (word2Int# n)) + , shift_right_arith = Just \(I16# a) (W# n) -> I16# (uncheckedShiftRAInt16# a (word2Int# n)) + , shift_left = \(I16# a) (W# n) -> I16# (uncheckedShiftLInt16# a (word2Int# n)) + , eq = \(I16# a) (I16# b) -> isTrue# (eqInt16# a b) + , gt = \(I16# a) (I16# b) -> isTrue# (gtInt16# a b) + , ge = \(I16# a) (I16# b) -> isTrue# (geInt16# a b) + , lt = \(I16# a) (I16# b) -> isTrue# (ltInt16# a b) + , le = \(I16# a) (I16# b) -> isTrue# (leInt16# a b) + , from_integer = fromIntegral + , mbit_and = Nothing + , mbit_or = Nothing + , mbit_xor = Nothing + } + +i32 :: N Int32 +i32 = N + { name = "I32" + , min_bound = minBound + , max_bound = maxBound + , signed = True + , nbits = 32 + , shift_right_logical = \(I32# a) (W# n) -> I32# (uncheckedShiftRLInt32# a (word2Int# n)) + , shift_right_arith = Just \(I32# a) (W# n) -> I32# (uncheckedShiftRAInt32# a (word2Int# n)) + , shift_left = \(I32# a) (W# n) -> I32# (uncheckedShiftLInt32# a (word2Int# n)) + , eq = \(I32# a) (I32# b) -> isTrue# (eqInt32# a b) + , gt = \(I32# a) (I32# b) -> isTrue# (gtInt32# a b) + , ge = \(I32# a) (I32# b) -> isTrue# (geInt32# a b) + , lt = \(I32# a) (I32# b) -> isTrue# (ltInt32# a b) + , le = \(I32# a) (I32# b) -> isTrue# (leInt32# a b) + , from_integer = fromIntegral + , mbit_and = Nothing + , mbit_or = Nothing + , mbit_xor = Nothing + } + + +main :: IO () +main = do + test w8 + test w16 + test w32 + + test i8 + test i16 + test i32 + +{-# NOINLINE test #-} +test :: (Integral a, Show a) => N a -> IO () +test sys@(N {..}) = do + + putStrLn $ "--------------------------" + putStrLn $ "Testing " ++ name + putStrLn $ "--------------------------" + + let assert s False = putStrLn ("FAILED: " ++ s) + --assert s True = return () + assert s True = putStrLn ("PASSED: " ++ s) + + let zero = from_integer 0 + let one = from_integer 1 + + -- right-shift zero must be zero + forM_ [0..nbits-1] \n -> + assert ("0 >> " ++ show n ++ " == 0") + (zero `eq` shift_right_logical zero n) + + -- left-shift zero must be zero + forM_ [0..nbits-1] \n -> + assert ("0 << " ++ show n ++ " == 0") + (zero `eq` shift_left zero n) + + -- left-shift 1 + forM_ [0..nbits-1] \n -> do + let expected = from_integer (1 `integerShiftL` n) + assert ("1 << " ++ show n ++ " == " ++ show expected) + (expected `eq` shift_left one n) + + -- logical right-shift minBound + forM_ [0..nbits-1] \n -> do + let expected + | n == 0 = min_bound + | otherwise = from_integer (integerAbs (fromIntegral min_bound) `integerShiftR` n) + assert (show min_bound ++ " >> " ++ show n ++ " == " ++ show expected ++ " (logical)") + (expected `eq` shift_right_logical min_bound n) + + -- arithmetic right-shift minBound + forM_ shift_right_arith \shift_right_arithmetic -> do + forM_ [0..nbits-1] \n -> do + let minb = fromIntegral min_bound :: Integer + let expected = from_integer (minb `integerShiftR` n) + assert (show min_bound ++ " >> " ++ show n ++ " == " ++ show expected ++ " (arithmetic)") + (expected `eq` shift_right_arithmetic min_bound n) + + -- and with 0 must be 0 + forM_ mbit_and \bit_and -> do + forM_ [0..nbits-1] \n -> do + let v = one `shift_left` n + assert ("0 .&. " ++ show v ++ " == 0") + (zero `eq` bit_and v zero) + + -- test with an overflowed value + let v = max_bound + max_bound + max_bound + assert ("0 .&. " ++ show v ++ " == 0") + (zero `eq` bit_and v zero) + + -- or with 0 must be constant + forM_ mbit_or \bit_or -> do + forM_ [0..nbits-1] \n -> do + let v = one `shift_left` n + assert ("0 .|. " ++ show v ++ " == " ++ show v) + (v `eq` bit_or v zero) + + -- test with an overflowed value + let v = max_bound + max_bound + max_bound + assert ("0 .|. " ++ show v ++ " == " ++ show v) + (v `eq` bit_or v zero) + + -- xor . xor = id + forM_ mbit_xor \bit_xor -> do + forM_ [0..nbits-2] \n -> do + -- v0 == v0' but hopefully GHC doesn't see it statically + let v0 = one `shift_left` n + let v1 = one `shift_left` (n+1) + let v0' = v1 `shift_right_logical` 1 + let v = max_bound + max_bound + max_bound + assert (show v ++ " `xor` " ++ show v0 ++ " == " ++ show v0' ++ " `xor` " ++ show v) + (bit_xor v v0 `eq` bit_xor v0' v) + + -- test comparison operators + forM_ [0..nbits-2-(if signed then 1 else 0)] \n -> do + -- v0 == v0' but hopefully GHC doesn't see it statically + let v0 = one `shift_left` n + let v1 = one `shift_left` (n+1) + let v0' = v1 `shift_right_logical` 1 + assert (show v0 ++ " < " ++ show v1) + (v0 `lt` v1) + assert (show v0 ++ " <= " ++ show v1) + (v0 `le` v1) + assert (show v0 ++ " > " ++ show v1) + (v1 `gt` v0) + + assert (show v0 ++ " <= " ++ show v0') + (v0 `le` v0') + assert (show v0 ++ " >= " ++ show v0') + (v0 `ge` v0') + assert (show v0 ++ " == " ++ show v0') + (v0 `eq` v0') diff --git a/testsuite/tests/primops/should_run/Sized.stdout b/testsuite/tests/primops/should_run/Sized.stdout new file mode 100644 index 0000000000..8d8e33a13f --- /dev/null +++ b/testsuite/tests/primops/should_run/Sized.stdout @@ -0,0 +1,1311 @@ +-------------------------- +Testing W8 +-------------------------- +PASSED: 0 >> 0 == 0 +PASSED: 0 >> 1 == 0 +PASSED: 0 >> 2 == 0 +PASSED: 0 >> 3 == 0 +PASSED: 0 >> 4 == 0 +PASSED: 0 >> 5 == 0 +PASSED: 0 >> 6 == 0 +PASSED: 0 >> 7 == 0 +PASSED: 0 << 0 == 0 +PASSED: 0 << 1 == 0 +PASSED: 0 << 2 == 0 +PASSED: 0 << 3 == 0 +PASSED: 0 << 4 == 0 +PASSED: 0 << 5 == 0 +PASSED: 0 << 6 == 0 +PASSED: 0 << 7 == 0 +PASSED: 1 << 0 == 1 +PASSED: 1 << 1 == 2 +PASSED: 1 << 2 == 4 +PASSED: 1 << 3 == 8 +PASSED: 1 << 4 == 16 +PASSED: 1 << 5 == 32 +PASSED: 1 << 6 == 64 +PASSED: 1 << 7 == 128 +PASSED: 0 >> 0 == 0 (logical) +PASSED: 0 >> 1 == 0 (logical) +PASSED: 0 >> 2 == 0 (logical) +PASSED: 0 >> 3 == 0 (logical) +PASSED: 0 >> 4 == 0 (logical) +PASSED: 0 >> 5 == 0 (logical) +PASSED: 0 >> 6 == 0 (logical) +PASSED: 0 >> 7 == 0 (logical) +PASSED: 0 .&. 1 == 0 +PASSED: 0 .&. 2 == 0 +PASSED: 0 .&. 4 == 0 +PASSED: 0 .&. 8 == 0 +PASSED: 0 .&. 16 == 0 +PASSED: 0 .&. 32 == 0 +PASSED: 0 .&. 64 == 0 +PASSED: 0 .&. 128 == 0 +PASSED: 0 .&. 253 == 0 +PASSED: 0 .|. 1 == 1 +PASSED: 0 .|. 2 == 2 +PASSED: 0 .|. 4 == 4 +PASSED: 0 .|. 8 == 8 +PASSED: 0 .|. 16 == 16 +PASSED: 0 .|. 32 == 32 +PASSED: 0 .|. 64 == 64 +PASSED: 0 .|. 128 == 128 +PASSED: 0 .|. 253 == 253 +PASSED: 253 `xor` 1 == 1 `xor` 253 +PASSED: 253 `xor` 2 == 2 `xor` 253 +PASSED: 253 `xor` 4 == 4 `xor` 253 +PASSED: 253 `xor` 8 == 8 `xor` 253 +PASSED: 253 `xor` 16 == 16 `xor` 253 +PASSED: 253 `xor` 32 == 32 `xor` 253 +PASSED: 253 `xor` 64 == 64 `xor` 253 +PASSED: 1 < 2 +PASSED: 1 <= 2 +PASSED: 1 > 2 +PASSED: 1 <= 1 +PASSED: 1 >= 1 +PASSED: 1 == 1 +PASSED: 2 < 4 +PASSED: 2 <= 4 +PASSED: 2 > 4 +PASSED: 2 <= 2 +PASSED: 2 >= 2 +PASSED: 2 == 2 +PASSED: 4 < 8 +PASSED: 4 <= 8 +PASSED: 4 > 8 +PASSED: 4 <= 4 +PASSED: 4 >= 4 +PASSED: 4 == 4 +PASSED: 8 < 16 +PASSED: 8 <= 16 +PASSED: 8 > 16 +PASSED: 8 <= 8 +PASSED: 8 >= 8 +PASSED: 8 == 8 +PASSED: 16 < 32 +PASSED: 16 <= 32 +PASSED: 16 > 32 +PASSED: 16 <= 16 +PASSED: 16 >= 16 +PASSED: 16 == 16 +PASSED: 32 < 64 +PASSED: 32 <= 64 +PASSED: 32 > 64 +PASSED: 32 <= 32 +PASSED: 32 >= 32 +PASSED: 32 == 32 +PASSED: 64 < 128 +PASSED: 64 <= 128 +PASSED: 64 > 128 +PASSED: 64 <= 64 +PASSED: 64 >= 64 +PASSED: 64 == 64 +-------------------------- +Testing W16 +-------------------------- +PASSED: 0 >> 0 == 0 +PASSED: 0 >> 1 == 0 +PASSED: 0 >> 2 == 0 +PASSED: 0 >> 3 == 0 +PASSED: 0 >> 4 == 0 +PASSED: 0 >> 5 == 0 +PASSED: 0 >> 6 == 0 +PASSED: 0 >> 7 == 0 +PASSED: 0 >> 8 == 0 +PASSED: 0 >> 9 == 0 +PASSED: 0 >> 10 == 0 +PASSED: 0 >> 11 == 0 +PASSED: 0 >> 12 == 0 +PASSED: 0 >> 13 == 0 +PASSED: 0 >> 14 == 0 +PASSED: 0 >> 15 == 0 +PASSED: 0 << 0 == 0 +PASSED: 0 << 1 == 0 +PASSED: 0 << 2 == 0 +PASSED: 0 << 3 == 0 +PASSED: 0 << 4 == 0 +PASSED: 0 << 5 == 0 +PASSED: 0 << 6 == 0 +PASSED: 0 << 7 == 0 +PASSED: 0 << 8 == 0 +PASSED: 0 << 9 == 0 +PASSED: 0 << 10 == 0 +PASSED: 0 << 11 == 0 +PASSED: 0 << 12 == 0 +PASSED: 0 << 13 == 0 +PASSED: 0 << 14 == 0 +PASSED: 0 << 15 == 0 +PASSED: 1 << 0 == 1 +PASSED: 1 << 1 == 2 +PASSED: 1 << 2 == 4 +PASSED: 1 << 3 == 8 +PASSED: 1 << 4 == 16 +PASSED: 1 << 5 == 32 +PASSED: 1 << 6 == 64 +PASSED: 1 << 7 == 128 +PASSED: 1 << 8 == 256 +PASSED: 1 << 9 == 512 +PASSED: 1 << 10 == 1024 +PASSED: 1 << 11 == 2048 +PASSED: 1 << 12 == 4096 +PASSED: 1 << 13 == 8192 +PASSED: 1 << 14 == 16384 +PASSED: 1 << 15 == 32768 +PASSED: 0 >> 0 == 0 (logical) +PASSED: 0 >> 1 == 0 (logical) +PASSED: 0 >> 2 == 0 (logical) +PASSED: 0 >> 3 == 0 (logical) +PASSED: 0 >> 4 == 0 (logical) +PASSED: 0 >> 5 == 0 (logical) +PASSED: 0 >> 6 == 0 (logical) +PASSED: 0 >> 7 == 0 (logical) +PASSED: 0 >> 8 == 0 (logical) +PASSED: 0 >> 9 == 0 (logical) +PASSED: 0 >> 10 == 0 (logical) +PASSED: 0 >> 11 == 0 (logical) +PASSED: 0 >> 12 == 0 (logical) +PASSED: 0 >> 13 == 0 (logical) +PASSED: 0 >> 14 == 0 (logical) +PASSED: 0 >> 15 == 0 (logical) +PASSED: 0 .&. 1 == 0 +PASSED: 0 .&. 2 == 0 +PASSED: 0 .&. 4 == 0 +PASSED: 0 .&. 8 == 0 +PASSED: 0 .&. 16 == 0 +PASSED: 0 .&. 32 == 0 +PASSED: 0 .&. 64 == 0 +PASSED: 0 .&. 128 == 0 +PASSED: 0 .&. 256 == 0 +PASSED: 0 .&. 512 == 0 +PASSED: 0 .&. 1024 == 0 +PASSED: 0 .&. 2048 == 0 +PASSED: 0 .&. 4096 == 0 +PASSED: 0 .&. 8192 == 0 +PASSED: 0 .&. 16384 == 0 +PASSED: 0 .&. 32768 == 0 +PASSED: 0 .&. 65533 == 0 +PASSED: 0 .|. 1 == 1 +PASSED: 0 .|. 2 == 2 +PASSED: 0 .|. 4 == 4 +PASSED: 0 .|. 8 == 8 +PASSED: 0 .|. 16 == 16 +PASSED: 0 .|. 32 == 32 +PASSED: 0 .|. 64 == 64 +PASSED: 0 .|. 128 == 128 +PASSED: 0 .|. 256 == 256 +PASSED: 0 .|. 512 == 512 +PASSED: 0 .|. 1024 == 1024 +PASSED: 0 .|. 2048 == 2048 +PASSED: 0 .|. 4096 == 4096 +PASSED: 0 .|. 8192 == 8192 +PASSED: 0 .|. 16384 == 16384 +PASSED: 0 .|. 32768 == 32768 +PASSED: 0 .|. 65533 == 65533 +PASSED: 65533 `xor` 1 == 1 `xor` 65533 +PASSED: 65533 `xor` 2 == 2 `xor` 65533 +PASSED: 65533 `xor` 4 == 4 `xor` 65533 +PASSED: 65533 `xor` 8 == 8 `xor` 65533 +PASSED: 65533 `xor` 16 == 16 `xor` 65533 +PASSED: 65533 `xor` 32 == 32 `xor` 65533 +PASSED: 65533 `xor` 64 == 64 `xor` 65533 +PASSED: 65533 `xor` 128 == 128 `xor` 65533 +PASSED: 65533 `xor` 256 == 256 `xor` 65533 +PASSED: 65533 `xor` 512 == 512 `xor` 65533 +PASSED: 65533 `xor` 1024 == 1024 `xor` 65533 +PASSED: 65533 `xor` 2048 == 2048 `xor` 65533 +PASSED: 65533 `xor` 4096 == 4096 `xor` 65533 +PASSED: 65533 `xor` 8192 == 8192 `xor` 65533 +PASSED: 65533 `xor` 16384 == 16384 `xor` 65533 +PASSED: 1 < 2 +PASSED: 1 <= 2 +PASSED: 1 > 2 +PASSED: 1 <= 1 +PASSED: 1 >= 1 +PASSED: 1 == 1 +PASSED: 2 < 4 +PASSED: 2 <= 4 +PASSED: 2 > 4 +PASSED: 2 <= 2 +PASSED: 2 >= 2 +PASSED: 2 == 2 +PASSED: 4 < 8 +PASSED: 4 <= 8 +PASSED: 4 > 8 +PASSED: 4 <= 4 +PASSED: 4 >= 4 +PASSED: 4 == 4 +PASSED: 8 < 16 +PASSED: 8 <= 16 +PASSED: 8 > 16 +PASSED: 8 <= 8 +PASSED: 8 >= 8 +PASSED: 8 == 8 +PASSED: 16 < 32 +PASSED: 16 <= 32 +PASSED: 16 > 32 +PASSED: 16 <= 16 +PASSED: 16 >= 16 +PASSED: 16 == 16 +PASSED: 32 < 64 +PASSED: 32 <= 64 +PASSED: 32 > 64 +PASSED: 32 <= 32 +PASSED: 32 >= 32 +PASSED: 32 == 32 +PASSED: 64 < 128 +PASSED: 64 <= 128 +PASSED: 64 > 128 +PASSED: 64 <= 64 +PASSED: 64 >= 64 +PASSED: 64 == 64 +PASSED: 128 < 256 +PASSED: 128 <= 256 +PASSED: 128 > 256 +PASSED: 128 <= 128 +PASSED: 128 >= 128 +PASSED: 128 == 128 +PASSED: 256 < 512 +PASSED: 256 <= 512 +PASSED: 256 > 512 +PASSED: 256 <= 256 +PASSED: 256 >= 256 +PASSED: 256 == 256 +PASSED: 512 < 1024 +PASSED: 512 <= 1024 +PASSED: 512 > 1024 +PASSED: 512 <= 512 +PASSED: 512 >= 512 +PASSED: 512 == 512 +PASSED: 1024 < 2048 +PASSED: 1024 <= 2048 +PASSED: 1024 > 2048 +PASSED: 1024 <= 1024 +PASSED: 1024 >= 1024 +PASSED: 1024 == 1024 +PASSED: 2048 < 4096 +PASSED: 2048 <= 4096 +PASSED: 2048 > 4096 +PASSED: 2048 <= 2048 +PASSED: 2048 >= 2048 +PASSED: 2048 == 2048 +PASSED: 4096 < 8192 +PASSED: 4096 <= 8192 +PASSED: 4096 > 8192 +PASSED: 4096 <= 4096 +PASSED: 4096 >= 4096 +PASSED: 4096 == 4096 +PASSED: 8192 < 16384 +PASSED: 8192 <= 16384 +PASSED: 8192 > 16384 +PASSED: 8192 <= 8192 +PASSED: 8192 >= 8192 +PASSED: 8192 == 8192 +PASSED: 16384 < 32768 +PASSED: 16384 <= 32768 +PASSED: 16384 > 32768 +PASSED: 16384 <= 16384 +PASSED: 16384 >= 16384 +PASSED: 16384 == 16384 +-------------------------- +Testing W32 +-------------------------- +PASSED: 0 >> 0 == 0 +PASSED: 0 >> 1 == 0 +PASSED: 0 >> 2 == 0 +PASSED: 0 >> 3 == 0 +PASSED: 0 >> 4 == 0 +PASSED: 0 >> 5 == 0 +PASSED: 0 >> 6 == 0 +PASSED: 0 >> 7 == 0 +PASSED: 0 >> 8 == 0 +PASSED: 0 >> 9 == 0 +PASSED: 0 >> 10 == 0 +PASSED: 0 >> 11 == 0 +PASSED: 0 >> 12 == 0 +PASSED: 0 >> 13 == 0 +PASSED: 0 >> 14 == 0 +PASSED: 0 >> 15 == 0 +PASSED: 0 >> 16 == 0 +PASSED: 0 >> 17 == 0 +PASSED: 0 >> 18 == 0 +PASSED: 0 >> 19 == 0 +PASSED: 0 >> 20 == 0 +PASSED: 0 >> 21 == 0 +PASSED: 0 >> 22 == 0 +PASSED: 0 >> 23 == 0 +PASSED: 0 >> 24 == 0 +PASSED: 0 >> 25 == 0 +PASSED: 0 >> 26 == 0 +PASSED: 0 >> 27 == 0 +PASSED: 0 >> 28 == 0 +PASSED: 0 >> 29 == 0 +PASSED: 0 >> 30 == 0 +PASSED: 0 >> 31 == 0 +PASSED: 0 << 0 == 0 +PASSED: 0 << 1 == 0 +PASSED: 0 << 2 == 0 +PASSED: 0 << 3 == 0 +PASSED: 0 << 4 == 0 +PASSED: 0 << 5 == 0 +PASSED: 0 << 6 == 0 +PASSED: 0 << 7 == 0 +PASSED: 0 << 8 == 0 +PASSED: 0 << 9 == 0 +PASSED: 0 << 10 == 0 +PASSED: 0 << 11 == 0 +PASSED: 0 << 12 == 0 +PASSED: 0 << 13 == 0 +PASSED: 0 << 14 == 0 +PASSED: 0 << 15 == 0 +PASSED: 0 << 16 == 0 +PASSED: 0 << 17 == 0 +PASSED: 0 << 18 == 0 +PASSED: 0 << 19 == 0 +PASSED: 0 << 20 == 0 +PASSED: 0 << 21 == 0 +PASSED: 0 << 22 == 0 +PASSED: 0 << 23 == 0 +PASSED: 0 << 24 == 0 +PASSED: 0 << 25 == 0 +PASSED: 0 << 26 == 0 +PASSED: 0 << 27 == 0 +PASSED: 0 << 28 == 0 +PASSED: 0 << 29 == 0 +PASSED: 0 << 30 == 0 +PASSED: 0 << 31 == 0 +PASSED: 1 << 0 == 1 +PASSED: 1 << 1 == 2 +PASSED: 1 << 2 == 4 +PASSED: 1 << 3 == 8 +PASSED: 1 << 4 == 16 +PASSED: 1 << 5 == 32 +PASSED: 1 << 6 == 64 +PASSED: 1 << 7 == 128 +PASSED: 1 << 8 == 256 +PASSED: 1 << 9 == 512 +PASSED: 1 << 10 == 1024 +PASSED: 1 << 11 == 2048 +PASSED: 1 << 12 == 4096 +PASSED: 1 << 13 == 8192 +PASSED: 1 << 14 == 16384 +PASSED: 1 << 15 == 32768 +PASSED: 1 << 16 == 65536 +PASSED: 1 << 17 == 131072 +PASSED: 1 << 18 == 262144 +PASSED: 1 << 19 == 524288 +PASSED: 1 << 20 == 1048576 +PASSED: 1 << 21 == 2097152 +PASSED: 1 << 22 == 4194304 +PASSED: 1 << 23 == 8388608 +PASSED: 1 << 24 == 16777216 +PASSED: 1 << 25 == 33554432 +PASSED: 1 << 26 == 67108864 +PASSED: 1 << 27 == 134217728 +PASSED: 1 << 28 == 268435456 +PASSED: 1 << 29 == 536870912 +PASSED: 1 << 30 == 1073741824 +PASSED: 1 << 31 == 2147483648 +PASSED: 0 >> 0 == 0 (logical) +PASSED: 0 >> 1 == 0 (logical) +PASSED: 0 >> 2 == 0 (logical) +PASSED: 0 >> 3 == 0 (logical) +PASSED: 0 >> 4 == 0 (logical) +PASSED: 0 >> 5 == 0 (logical) +PASSED: 0 >> 6 == 0 (logical) +PASSED: 0 >> 7 == 0 (logical) +PASSED: 0 >> 8 == 0 (logical) +PASSED: 0 >> 9 == 0 (logical) +PASSED: 0 >> 10 == 0 (logical) +PASSED: 0 >> 11 == 0 (logical) +PASSED: 0 >> 12 == 0 (logical) +PASSED: 0 >> 13 == 0 (logical) +PASSED: 0 >> 14 == 0 (logical) +PASSED: 0 >> 15 == 0 (logical) +PASSED: 0 >> 16 == 0 (logical) +PASSED: 0 >> 17 == 0 (logical) +PASSED: 0 >> 18 == 0 (logical) +PASSED: 0 >> 19 == 0 (logical) +PASSED: 0 >> 20 == 0 (logical) +PASSED: 0 >> 21 == 0 (logical) +PASSED: 0 >> 22 == 0 (logical) +PASSED: 0 >> 23 == 0 (logical) +PASSED: 0 >> 24 == 0 (logical) +PASSED: 0 >> 25 == 0 (logical) +PASSED: 0 >> 26 == 0 (logical) +PASSED: 0 >> 27 == 0 (logical) +PASSED: 0 >> 28 == 0 (logical) +PASSED: 0 >> 29 == 0 (logical) +PASSED: 0 >> 30 == 0 (logical) +PASSED: 0 >> 31 == 0 (logical) +PASSED: 0 .&. 1 == 0 +PASSED: 0 .&. 2 == 0 +PASSED: 0 .&. 4 == 0 +PASSED: 0 .&. 8 == 0 +PASSED: 0 .&. 16 == 0 +PASSED: 0 .&. 32 == 0 +PASSED: 0 .&. 64 == 0 +PASSED: 0 .&. 128 == 0 +PASSED: 0 .&. 256 == 0 +PASSED: 0 .&. 512 == 0 +PASSED: 0 .&. 1024 == 0 +PASSED: 0 .&. 2048 == 0 +PASSED: 0 .&. 4096 == 0 +PASSED: 0 .&. 8192 == 0 +PASSED: 0 .&. 16384 == 0 +PASSED: 0 .&. 32768 == 0 +PASSED: 0 .&. 65536 == 0 +PASSED: 0 .&. 131072 == 0 +PASSED: 0 .&. 262144 == 0 +PASSED: 0 .&. 524288 == 0 +PASSED: 0 .&. 1048576 == 0 +PASSED: 0 .&. 2097152 == 0 +PASSED: 0 .&. 4194304 == 0 +PASSED: 0 .&. 8388608 == 0 +PASSED: 0 .&. 16777216 == 0 +PASSED: 0 .&. 33554432 == 0 +PASSED: 0 .&. 67108864 == 0 +PASSED: 0 .&. 134217728 == 0 +PASSED: 0 .&. 268435456 == 0 +PASSED: 0 .&. 536870912 == 0 +PASSED: 0 .&. 1073741824 == 0 +PASSED: 0 .&. 2147483648 == 0 +PASSED: 0 .&. 4294967293 == 0 +PASSED: 0 .|. 1 == 1 +PASSED: 0 .|. 2 == 2 +PASSED: 0 .|. 4 == 4 +PASSED: 0 .|. 8 == 8 +PASSED: 0 .|. 16 == 16 +PASSED: 0 .|. 32 == 32 +PASSED: 0 .|. 64 == 64 +PASSED: 0 .|. 128 == 128 +PASSED: 0 .|. 256 == 256 +PASSED: 0 .|. 512 == 512 +PASSED: 0 .|. 1024 == 1024 +PASSED: 0 .|. 2048 == 2048 +PASSED: 0 .|. 4096 == 4096 +PASSED: 0 .|. 8192 == 8192 +PASSED: 0 .|. 16384 == 16384 +PASSED: 0 .|. 32768 == 32768 +PASSED: 0 .|. 65536 == 65536 +PASSED: 0 .|. 131072 == 131072 +PASSED: 0 .|. 262144 == 262144 +PASSED: 0 .|. 524288 == 524288 +PASSED: 0 .|. 1048576 == 1048576 +PASSED: 0 .|. 2097152 == 2097152 +PASSED: 0 .|. 4194304 == 4194304 +PASSED: 0 .|. 8388608 == 8388608 +PASSED: 0 .|. 16777216 == 16777216 +PASSED: 0 .|. 33554432 == 33554432 +PASSED: 0 .|. 67108864 == 67108864 +PASSED: 0 .|. 134217728 == 134217728 +PASSED: 0 .|. 268435456 == 268435456 +PASSED: 0 .|. 536870912 == 536870912 +PASSED: 0 .|. 1073741824 == 1073741824 +PASSED: 0 .|. 2147483648 == 2147483648 +PASSED: 0 .|. 4294967293 == 4294967293 +PASSED: 4294967293 `xor` 1 == 1 `xor` 4294967293 +PASSED: 4294967293 `xor` 2 == 2 `xor` 4294967293 +PASSED: 4294967293 `xor` 4 == 4 `xor` 4294967293 +PASSED: 4294967293 `xor` 8 == 8 `xor` 4294967293 +PASSED: 4294967293 `xor` 16 == 16 `xor` 4294967293 +PASSED: 4294967293 `xor` 32 == 32 `xor` 4294967293 +PASSED: 4294967293 `xor` 64 == 64 `xor` 4294967293 +PASSED: 4294967293 `xor` 128 == 128 `xor` 4294967293 +PASSED: 4294967293 `xor` 256 == 256 `xor` 4294967293 +PASSED: 4294967293 `xor` 512 == 512 `xor` 4294967293 +PASSED: 4294967293 `xor` 1024 == 1024 `xor` 4294967293 +PASSED: 4294967293 `xor` 2048 == 2048 `xor` 4294967293 +PASSED: 4294967293 `xor` 4096 == 4096 `xor` 4294967293 +PASSED: 4294967293 `xor` 8192 == 8192 `xor` 4294967293 +PASSED: 4294967293 `xor` 16384 == 16384 `xor` 4294967293 +PASSED: 4294967293 `xor` 32768 == 32768 `xor` 4294967293 +PASSED: 4294967293 `xor` 65536 == 65536 `xor` 4294967293 +PASSED: 4294967293 `xor` 131072 == 131072 `xor` 4294967293 +PASSED: 4294967293 `xor` 262144 == 262144 `xor` 4294967293 +PASSED: 4294967293 `xor` 524288 == 524288 `xor` 4294967293 +PASSED: 4294967293 `xor` 1048576 == 1048576 `xor` 4294967293 +PASSED: 4294967293 `xor` 2097152 == 2097152 `xor` 4294967293 +PASSED: 4294967293 `xor` 4194304 == 4194304 `xor` 4294967293 +PASSED: 4294967293 `xor` 8388608 == 8388608 `xor` 4294967293 +PASSED: 4294967293 `xor` 16777216 == 16777216 `xor` 4294967293 +PASSED: 4294967293 `xor` 33554432 == 33554432 `xor` 4294967293 +PASSED: 4294967293 `xor` 67108864 == 67108864 `xor` 4294967293 +PASSED: 4294967293 `xor` 134217728 == 134217728 `xor` 4294967293 +PASSED: 4294967293 `xor` 268435456 == 268435456 `xor` 4294967293 +PASSED: 4294967293 `xor` 536870912 == 536870912 `xor` 4294967293 +PASSED: 4294967293 `xor` 1073741824 == 1073741824 `xor` 4294967293 +PASSED: 1 < 2 +PASSED: 1 <= 2 +PASSED: 1 > 2 +PASSED: 1 <= 1 +PASSED: 1 >= 1 +PASSED: 1 == 1 +PASSED: 2 < 4 +PASSED: 2 <= 4 +PASSED: 2 > 4 +PASSED: 2 <= 2 +PASSED: 2 >= 2 +PASSED: 2 == 2 +PASSED: 4 < 8 +PASSED: 4 <= 8 +PASSED: 4 > 8 +PASSED: 4 <= 4 +PASSED: 4 >= 4 +PASSED: 4 == 4 +PASSED: 8 < 16 +PASSED: 8 <= 16 +PASSED: 8 > 16 +PASSED: 8 <= 8 +PASSED: 8 >= 8 +PASSED: 8 == 8 +PASSED: 16 < 32 +PASSED: 16 <= 32 +PASSED: 16 > 32 +PASSED: 16 <= 16 +PASSED: 16 >= 16 +PASSED: 16 == 16 +PASSED: 32 < 64 +PASSED: 32 <= 64 +PASSED: 32 > 64 +PASSED: 32 <= 32 +PASSED: 32 >= 32 +PASSED: 32 == 32 +PASSED: 64 < 128 +PASSED: 64 <= 128 +PASSED: 64 > 128 +PASSED: 64 <= 64 +PASSED: 64 >= 64 +PASSED: 64 == 64 +PASSED: 128 < 256 +PASSED: 128 <= 256 +PASSED: 128 > 256 +PASSED: 128 <= 128 +PASSED: 128 >= 128 +PASSED: 128 == 128 +PASSED: 256 < 512 +PASSED: 256 <= 512 +PASSED: 256 > 512 +PASSED: 256 <= 256 +PASSED: 256 >= 256 +PASSED: 256 == 256 +PASSED: 512 < 1024 +PASSED: 512 <= 1024 +PASSED: 512 > 1024 +PASSED: 512 <= 512 +PASSED: 512 >= 512 +PASSED: 512 == 512 +PASSED: 1024 < 2048 +PASSED: 1024 <= 2048 +PASSED: 1024 > 2048 +PASSED: 1024 <= 1024 +PASSED: 1024 >= 1024 +PASSED: 1024 == 1024 +PASSED: 2048 < 4096 +PASSED: 2048 <= 4096 +PASSED: 2048 > 4096 +PASSED: 2048 <= 2048 +PASSED: 2048 >= 2048 +PASSED: 2048 == 2048 +PASSED: 4096 < 8192 +PASSED: 4096 <= 8192 +PASSED: 4096 > 8192 +PASSED: 4096 <= 4096 +PASSED: 4096 >= 4096 +PASSED: 4096 == 4096 +PASSED: 8192 < 16384 +PASSED: 8192 <= 16384 +PASSED: 8192 > 16384 +PASSED: 8192 <= 8192 +PASSED: 8192 >= 8192 +PASSED: 8192 == 8192 +PASSED: 16384 < 32768 +PASSED: 16384 <= 32768 +PASSED: 16384 > 32768 +PASSED: 16384 <= 16384 +PASSED: 16384 >= 16384 +PASSED: 16384 == 16384 +PASSED: 32768 < 65536 +PASSED: 32768 <= 65536 +PASSED: 32768 > 65536 +PASSED: 32768 <= 32768 +PASSED: 32768 >= 32768 +PASSED: 32768 == 32768 +PASSED: 65536 < 131072 +PASSED: 65536 <= 131072 +PASSED: 65536 > 131072 +PASSED: 65536 <= 65536 +PASSED: 65536 >= 65536 +PASSED: 65536 == 65536 +PASSED: 131072 < 262144 +PASSED: 131072 <= 262144 +PASSED: 131072 > 262144 +PASSED: 131072 <= 131072 +PASSED: 131072 >= 131072 +PASSED: 131072 == 131072 +PASSED: 262144 < 524288 +PASSED: 262144 <= 524288 +PASSED: 262144 > 524288 +PASSED: 262144 <= 262144 +PASSED: 262144 >= 262144 +PASSED: 262144 == 262144 +PASSED: 524288 < 1048576 +PASSED: 524288 <= 1048576 +PASSED: 524288 > 1048576 +PASSED: 524288 <= 524288 +PASSED: 524288 >= 524288 +PASSED: 524288 == 524288 +PASSED: 1048576 < 2097152 +PASSED: 1048576 <= 2097152 +PASSED: 1048576 > 2097152 +PASSED: 1048576 <= 1048576 +PASSED: 1048576 >= 1048576 +PASSED: 1048576 == 1048576 +PASSED: 2097152 < 4194304 +PASSED: 2097152 <= 4194304 +PASSED: 2097152 > 4194304 +PASSED: 2097152 <= 2097152 +PASSED: 2097152 >= 2097152 +PASSED: 2097152 == 2097152 +PASSED: 4194304 < 8388608 +PASSED: 4194304 <= 8388608 +PASSED: 4194304 > 8388608 +PASSED: 4194304 <= 4194304 +PASSED: 4194304 >= 4194304 +PASSED: 4194304 == 4194304 +PASSED: 8388608 < 16777216 +PASSED: 8388608 <= 16777216 +PASSED: 8388608 > 16777216 +PASSED: 8388608 <= 8388608 +PASSED: 8388608 >= 8388608 +PASSED: 8388608 == 8388608 +PASSED: 16777216 < 33554432 +PASSED: 16777216 <= 33554432 +PASSED: 16777216 > 33554432 +PASSED: 16777216 <= 16777216 +PASSED: 16777216 >= 16777216 +PASSED: 16777216 == 16777216 +PASSED: 33554432 < 67108864 +PASSED: 33554432 <= 67108864 +PASSED: 33554432 > 67108864 +PASSED: 33554432 <= 33554432 +PASSED: 33554432 >= 33554432 +PASSED: 33554432 == 33554432 +PASSED: 67108864 < 134217728 +PASSED: 67108864 <= 134217728 +PASSED: 67108864 > 134217728 +PASSED: 67108864 <= 67108864 +PASSED: 67108864 >= 67108864 +PASSED: 67108864 == 67108864 +PASSED: 134217728 < 268435456 +PASSED: 134217728 <= 268435456 +PASSED: 134217728 > 268435456 +PASSED: 134217728 <= 134217728 +PASSED: 134217728 >= 134217728 +PASSED: 134217728 == 134217728 +PASSED: 268435456 < 536870912 +PASSED: 268435456 <= 536870912 +PASSED: 268435456 > 536870912 +PASSED: 268435456 <= 268435456 +PASSED: 268435456 >= 268435456 +PASSED: 268435456 == 268435456 +PASSED: 536870912 < 1073741824 +PASSED: 536870912 <= 1073741824 +PASSED: 536870912 > 1073741824 +PASSED: 536870912 <= 536870912 +PASSED: 536870912 >= 536870912 +PASSED: 536870912 == 536870912 +PASSED: 1073741824 < 2147483648 +PASSED: 1073741824 <= 2147483648 +PASSED: 1073741824 > 2147483648 +PASSED: 1073741824 <= 1073741824 +PASSED: 1073741824 >= 1073741824 +PASSED: 1073741824 == 1073741824 +-------------------------- +Testing I8 +-------------------------- +PASSED: 0 >> 0 == 0 +PASSED: 0 >> 1 == 0 +PASSED: 0 >> 2 == 0 +PASSED: 0 >> 3 == 0 +PASSED: 0 >> 4 == 0 +PASSED: 0 >> 5 == 0 +PASSED: 0 >> 6 == 0 +PASSED: 0 >> 7 == 0 +PASSED: 0 << 0 == 0 +PASSED: 0 << 1 == 0 +PASSED: 0 << 2 == 0 +PASSED: 0 << 3 == 0 +PASSED: 0 << 4 == 0 +PASSED: 0 << 5 == 0 +PASSED: 0 << 6 == 0 +PASSED: 0 << 7 == 0 +PASSED: 1 << 0 == 1 +PASSED: 1 << 1 == 2 +PASSED: 1 << 2 == 4 +PASSED: 1 << 3 == 8 +PASSED: 1 << 4 == 16 +PASSED: 1 << 5 == 32 +PASSED: 1 << 6 == 64 +PASSED: 1 << 7 == -128 +PASSED: -128 >> 0 == -128 (logical) +PASSED: -128 >> 1 == 64 (logical) +PASSED: -128 >> 2 == 32 (logical) +PASSED: -128 >> 3 == 16 (logical) +PASSED: -128 >> 4 == 8 (logical) +PASSED: -128 >> 5 == 4 (logical) +PASSED: -128 >> 6 == 2 (logical) +PASSED: -128 >> 7 == 1 (logical) +PASSED: -128 >> 0 == -128 (arithmetic) +PASSED: -128 >> 1 == -64 (arithmetic) +PASSED: -128 >> 2 == -32 (arithmetic) +PASSED: -128 >> 3 == -16 (arithmetic) +PASSED: -128 >> 4 == -8 (arithmetic) +PASSED: -128 >> 5 == -4 (arithmetic) +PASSED: -128 >> 6 == -2 (arithmetic) +PASSED: -128 >> 7 == -1 (arithmetic) +PASSED: 1 < 2 +PASSED: 1 <= 2 +PASSED: 1 > 2 +PASSED: 1 <= 1 +PASSED: 1 >= 1 +PASSED: 1 == 1 +PASSED: 2 < 4 +PASSED: 2 <= 4 +PASSED: 2 > 4 +PASSED: 2 <= 2 +PASSED: 2 >= 2 +PASSED: 2 == 2 +PASSED: 4 < 8 +PASSED: 4 <= 8 +PASSED: 4 > 8 +PASSED: 4 <= 4 +PASSED: 4 >= 4 +PASSED: 4 == 4 +PASSED: 8 < 16 +PASSED: 8 <= 16 +PASSED: 8 > 16 +PASSED: 8 <= 8 +PASSED: 8 >= 8 +PASSED: 8 == 8 +PASSED: 16 < 32 +PASSED: 16 <= 32 +PASSED: 16 > 32 +PASSED: 16 <= 16 +PASSED: 16 >= 16 +PASSED: 16 == 16 +PASSED: 32 < 64 +PASSED: 32 <= 64 +PASSED: 32 > 64 +PASSED: 32 <= 32 +PASSED: 32 >= 32 +PASSED: 32 == 32 +-------------------------- +Testing I16 +-------------------------- +PASSED: 0 >> 0 == 0 +PASSED: 0 >> 1 == 0 +PASSED: 0 >> 2 == 0 +PASSED: 0 >> 3 == 0 +PASSED: 0 >> 4 == 0 +PASSED: 0 >> 5 == 0 +PASSED: 0 >> 6 == 0 +PASSED: 0 >> 7 == 0 +PASSED: 0 >> 8 == 0 +PASSED: 0 >> 9 == 0 +PASSED: 0 >> 10 == 0 +PASSED: 0 >> 11 == 0 +PASSED: 0 >> 12 == 0 +PASSED: 0 >> 13 == 0 +PASSED: 0 >> 14 == 0 +PASSED: 0 >> 15 == 0 +PASSED: 0 << 0 == 0 +PASSED: 0 << 1 == 0 +PASSED: 0 << 2 == 0 +PASSED: 0 << 3 == 0 +PASSED: 0 << 4 == 0 +PASSED: 0 << 5 == 0 +PASSED: 0 << 6 == 0 +PASSED: 0 << 7 == 0 +PASSED: 0 << 8 == 0 +PASSED: 0 << 9 == 0 +PASSED: 0 << 10 == 0 +PASSED: 0 << 11 == 0 +PASSED: 0 << 12 == 0 +PASSED: 0 << 13 == 0 +PASSED: 0 << 14 == 0 +PASSED: 0 << 15 == 0 +PASSED: 1 << 0 == 1 +PASSED: 1 << 1 == 2 +PASSED: 1 << 2 == 4 +PASSED: 1 << 3 == 8 +PASSED: 1 << 4 == 16 +PASSED: 1 << 5 == 32 +PASSED: 1 << 6 == 64 +PASSED: 1 << 7 == 128 +PASSED: 1 << 8 == 256 +PASSED: 1 << 9 == 512 +PASSED: 1 << 10 == 1024 +PASSED: 1 << 11 == 2048 +PASSED: 1 << 12 == 4096 +PASSED: 1 << 13 == 8192 +PASSED: 1 << 14 == 16384 +PASSED: 1 << 15 == -32768 +PASSED: -32768 >> 0 == -32768 (logical) +PASSED: -32768 >> 1 == 16384 (logical) +PASSED: -32768 >> 2 == 8192 (logical) +PASSED: -32768 >> 3 == 4096 (logical) +PASSED: -32768 >> 4 == 2048 (logical) +PASSED: -32768 >> 5 == 1024 (logical) +PASSED: -32768 >> 6 == 512 (logical) +PASSED: -32768 >> 7 == 256 (logical) +PASSED: -32768 >> 8 == 128 (logical) +PASSED: -32768 >> 9 == 64 (logical) +PASSED: -32768 >> 10 == 32 (logical) +PASSED: -32768 >> 11 == 16 (logical) +PASSED: -32768 >> 12 == 8 (logical) +PASSED: -32768 >> 13 == 4 (logical) +PASSED: -32768 >> 14 == 2 (logical) +PASSED: -32768 >> 15 == 1 (logical) +PASSED: -32768 >> 0 == -32768 (arithmetic) +PASSED: -32768 >> 1 == -16384 (arithmetic) +PASSED: -32768 >> 2 == -8192 (arithmetic) +PASSED: -32768 >> 3 == -4096 (arithmetic) +PASSED: -32768 >> 4 == -2048 (arithmetic) +PASSED: -32768 >> 5 == -1024 (arithmetic) +PASSED: -32768 >> 6 == -512 (arithmetic) +PASSED: -32768 >> 7 == -256 (arithmetic) +PASSED: -32768 >> 8 == -128 (arithmetic) +PASSED: -32768 >> 9 == -64 (arithmetic) +PASSED: -32768 >> 10 == -32 (arithmetic) +PASSED: -32768 >> 11 == -16 (arithmetic) +PASSED: -32768 >> 12 == -8 (arithmetic) +PASSED: -32768 >> 13 == -4 (arithmetic) +PASSED: -32768 >> 14 == -2 (arithmetic) +PASSED: -32768 >> 15 == -1 (arithmetic) +PASSED: 1 < 2 +PASSED: 1 <= 2 +PASSED: 1 > 2 +PASSED: 1 <= 1 +PASSED: 1 >= 1 +PASSED: 1 == 1 +PASSED: 2 < 4 +PASSED: 2 <= 4 +PASSED: 2 > 4 +PASSED: 2 <= 2 +PASSED: 2 >= 2 +PASSED: 2 == 2 +PASSED: 4 < 8 +PASSED: 4 <= 8 +PASSED: 4 > 8 +PASSED: 4 <= 4 +PASSED: 4 >= 4 +PASSED: 4 == 4 +PASSED: 8 < 16 +PASSED: 8 <= 16 +PASSED: 8 > 16 +PASSED: 8 <= 8 +PASSED: 8 >= 8 +PASSED: 8 == 8 +PASSED: 16 < 32 +PASSED: 16 <= 32 +PASSED: 16 > 32 +PASSED: 16 <= 16 +PASSED: 16 >= 16 +PASSED: 16 == 16 +PASSED: 32 < 64 +PASSED: 32 <= 64 +PASSED: 32 > 64 +PASSED: 32 <= 32 +PASSED: 32 >= 32 +PASSED: 32 == 32 +PASSED: 64 < 128 +PASSED: 64 <= 128 +PASSED: 64 > 128 +PASSED: 64 <= 64 +PASSED: 64 >= 64 +PASSED: 64 == 64 +PASSED: 128 < 256 +PASSED: 128 <= 256 +PASSED: 128 > 256 +PASSED: 128 <= 128 +PASSED: 128 >= 128 +PASSED: 128 == 128 +PASSED: 256 < 512 +PASSED: 256 <= 512 +PASSED: 256 > 512 +PASSED: 256 <= 256 +PASSED: 256 >= 256 +PASSED: 256 == 256 +PASSED: 512 < 1024 +PASSED: 512 <= 1024 +PASSED: 512 > 1024 +PASSED: 512 <= 512 +PASSED: 512 >= 512 +PASSED: 512 == 512 +PASSED: 1024 < 2048 +PASSED: 1024 <= 2048 +PASSED: 1024 > 2048 +PASSED: 1024 <= 1024 +PASSED: 1024 >= 1024 +PASSED: 1024 == 1024 +PASSED: 2048 < 4096 +PASSED: 2048 <= 4096 +PASSED: 2048 > 4096 +PASSED: 2048 <= 2048 +PASSED: 2048 >= 2048 +PASSED: 2048 == 2048 +PASSED: 4096 < 8192 +PASSED: 4096 <= 8192 +PASSED: 4096 > 8192 +PASSED: 4096 <= 4096 +PASSED: 4096 >= 4096 +PASSED: 4096 == 4096 +PASSED: 8192 < 16384 +PASSED: 8192 <= 16384 +PASSED: 8192 > 16384 +PASSED: 8192 <= 8192 +PASSED: 8192 >= 8192 +PASSED: 8192 == 8192 +-------------------------- +Testing I32 +-------------------------- +PASSED: 0 >> 0 == 0 +PASSED: 0 >> 1 == 0 +PASSED: 0 >> 2 == 0 +PASSED: 0 >> 3 == 0 +PASSED: 0 >> 4 == 0 +PASSED: 0 >> 5 == 0 +PASSED: 0 >> 6 == 0 +PASSED: 0 >> 7 == 0 +PASSED: 0 >> 8 == 0 +PASSED: 0 >> 9 == 0 +PASSED: 0 >> 10 == 0 +PASSED: 0 >> 11 == 0 +PASSED: 0 >> 12 == 0 +PASSED: 0 >> 13 == 0 +PASSED: 0 >> 14 == 0 +PASSED: 0 >> 15 == 0 +PASSED: 0 >> 16 == 0 +PASSED: 0 >> 17 == 0 +PASSED: 0 >> 18 == 0 +PASSED: 0 >> 19 == 0 +PASSED: 0 >> 20 == 0 +PASSED: 0 >> 21 == 0 +PASSED: 0 >> 22 == 0 +PASSED: 0 >> 23 == 0 +PASSED: 0 >> 24 == 0 +PASSED: 0 >> 25 == 0 +PASSED: 0 >> 26 == 0 +PASSED: 0 >> 27 == 0 +PASSED: 0 >> 28 == 0 +PASSED: 0 >> 29 == 0 +PASSED: 0 >> 30 == 0 +PASSED: 0 >> 31 == 0 +PASSED: 0 << 0 == 0 +PASSED: 0 << 1 == 0 +PASSED: 0 << 2 == 0 +PASSED: 0 << 3 == 0 +PASSED: 0 << 4 == 0 +PASSED: 0 << 5 == 0 +PASSED: 0 << 6 == 0 +PASSED: 0 << 7 == 0 +PASSED: 0 << 8 == 0 +PASSED: 0 << 9 == 0 +PASSED: 0 << 10 == 0 +PASSED: 0 << 11 == 0 +PASSED: 0 << 12 == 0 +PASSED: 0 << 13 == 0 +PASSED: 0 << 14 == 0 +PASSED: 0 << 15 == 0 +PASSED: 0 << 16 == 0 +PASSED: 0 << 17 == 0 +PASSED: 0 << 18 == 0 +PASSED: 0 << 19 == 0 +PASSED: 0 << 20 == 0 +PASSED: 0 << 21 == 0 +PASSED: 0 << 22 == 0 +PASSED: 0 << 23 == 0 +PASSED: 0 << 24 == 0 +PASSED: 0 << 25 == 0 +PASSED: 0 << 26 == 0 +PASSED: 0 << 27 == 0 +PASSED: 0 << 28 == 0 +PASSED: 0 << 29 == 0 +PASSED: 0 << 30 == 0 +PASSED: 0 << 31 == 0 +PASSED: 1 << 0 == 1 +PASSED: 1 << 1 == 2 +PASSED: 1 << 2 == 4 +PASSED: 1 << 3 == 8 +PASSED: 1 << 4 == 16 +PASSED: 1 << 5 == 32 +PASSED: 1 << 6 == 64 +PASSED: 1 << 7 == 128 +PASSED: 1 << 8 == 256 +PASSED: 1 << 9 == 512 +PASSED: 1 << 10 == 1024 +PASSED: 1 << 11 == 2048 +PASSED: 1 << 12 == 4096 +PASSED: 1 << 13 == 8192 +PASSED: 1 << 14 == 16384 +PASSED: 1 << 15 == 32768 +PASSED: 1 << 16 == 65536 +PASSED: 1 << 17 == 131072 +PASSED: 1 << 18 == 262144 +PASSED: 1 << 19 == 524288 +PASSED: 1 << 20 == 1048576 +PASSED: 1 << 21 == 2097152 +PASSED: 1 << 22 == 4194304 +PASSED: 1 << 23 == 8388608 +PASSED: 1 << 24 == 16777216 +PASSED: 1 << 25 == 33554432 +PASSED: 1 << 26 == 67108864 +PASSED: 1 << 27 == 134217728 +PASSED: 1 << 28 == 268435456 +PASSED: 1 << 29 == 536870912 +PASSED: 1 << 30 == 1073741824 +PASSED: 1 << 31 == -2147483648 +PASSED: -2147483648 >> 0 == -2147483648 (logical) +PASSED: -2147483648 >> 1 == 1073741824 (logical) +PASSED: -2147483648 >> 2 == 536870912 (logical) +PASSED: -2147483648 >> 3 == 268435456 (logical) +PASSED: -2147483648 >> 4 == 134217728 (logical) +PASSED: -2147483648 >> 5 == 67108864 (logical) +PASSED: -2147483648 >> 6 == 33554432 (logical) +PASSED: -2147483648 >> 7 == 16777216 (logical) +PASSED: -2147483648 >> 8 == 8388608 (logical) +PASSED: -2147483648 >> 9 == 4194304 (logical) +PASSED: -2147483648 >> 10 == 2097152 (logical) +PASSED: -2147483648 >> 11 == 1048576 (logical) +PASSED: -2147483648 >> 12 == 524288 (logical) +PASSED: -2147483648 >> 13 == 262144 (logical) +PASSED: -2147483648 >> 14 == 131072 (logical) +PASSED: -2147483648 >> 15 == 65536 (logical) +PASSED: -2147483648 >> 16 == 32768 (logical) +PASSED: -2147483648 >> 17 == 16384 (logical) +PASSED: -2147483648 >> 18 == 8192 (logical) +PASSED: -2147483648 >> 19 == 4096 (logical) +PASSED: -2147483648 >> 20 == 2048 (logical) +PASSED: -2147483648 >> 21 == 1024 (logical) +PASSED: -2147483648 >> 22 == 512 (logical) +PASSED: -2147483648 >> 23 == 256 (logical) +PASSED: -2147483648 >> 24 == 128 (logical) +PASSED: -2147483648 >> 25 == 64 (logical) +PASSED: -2147483648 >> 26 == 32 (logical) +PASSED: -2147483648 >> 27 == 16 (logical) +PASSED: -2147483648 >> 28 == 8 (logical) +PASSED: -2147483648 >> 29 == 4 (logical) +PASSED: -2147483648 >> 30 == 2 (logical) +PASSED: -2147483648 >> 31 == 1 (logical) +PASSED: -2147483648 >> 0 == -2147483648 (arithmetic) +PASSED: -2147483648 >> 1 == -1073741824 (arithmetic) +PASSED: -2147483648 >> 2 == -536870912 (arithmetic) +PASSED: -2147483648 >> 3 == -268435456 (arithmetic) +PASSED: -2147483648 >> 4 == -134217728 (arithmetic) +PASSED: -2147483648 >> 5 == -67108864 (arithmetic) +PASSED: -2147483648 >> 6 == -33554432 (arithmetic) +PASSED: -2147483648 >> 7 == -16777216 (arithmetic) +PASSED: -2147483648 >> 8 == -8388608 (arithmetic) +PASSED: -2147483648 >> 9 == -4194304 (arithmetic) +PASSED: -2147483648 >> 10 == -2097152 (arithmetic) +PASSED: -2147483648 >> 11 == -1048576 (arithmetic) +PASSED: -2147483648 >> 12 == -524288 (arithmetic) +PASSED: -2147483648 >> 13 == -262144 (arithmetic) +PASSED: -2147483648 >> 14 == -131072 (arithmetic) +PASSED: -2147483648 >> 15 == -65536 (arithmetic) +PASSED: -2147483648 >> 16 == -32768 (arithmetic) +PASSED: -2147483648 >> 17 == -16384 (arithmetic) +PASSED: -2147483648 >> 18 == -8192 (arithmetic) +PASSED: -2147483648 >> 19 == -4096 (arithmetic) +PASSED: -2147483648 >> 20 == -2048 (arithmetic) +PASSED: -2147483648 >> 21 == -1024 (arithmetic) +PASSED: -2147483648 >> 22 == -512 (arithmetic) +PASSED: -2147483648 >> 23 == -256 (arithmetic) +PASSED: -2147483648 >> 24 == -128 (arithmetic) +PASSED: -2147483648 >> 25 == -64 (arithmetic) +PASSED: -2147483648 >> 26 == -32 (arithmetic) +PASSED: -2147483648 >> 27 == -16 (arithmetic) +PASSED: -2147483648 >> 28 == -8 (arithmetic) +PASSED: -2147483648 >> 29 == -4 (arithmetic) +PASSED: -2147483648 >> 30 == -2 (arithmetic) +PASSED: -2147483648 >> 31 == -1 (arithmetic) +PASSED: 1 < 2 +PASSED: 1 <= 2 +PASSED: 1 > 2 +PASSED: 1 <= 1 +PASSED: 1 >= 1 +PASSED: 1 == 1 +PASSED: 2 < 4 +PASSED: 2 <= 4 +PASSED: 2 > 4 +PASSED: 2 <= 2 +PASSED: 2 >= 2 +PASSED: 2 == 2 +PASSED: 4 < 8 +PASSED: 4 <= 8 +PASSED: 4 > 8 +PASSED: 4 <= 4 +PASSED: 4 >= 4 +PASSED: 4 == 4 +PASSED: 8 < 16 +PASSED: 8 <= 16 +PASSED: 8 > 16 +PASSED: 8 <= 8 +PASSED: 8 >= 8 +PASSED: 8 == 8 +PASSED: 16 < 32 +PASSED: 16 <= 32 +PASSED: 16 > 32 +PASSED: 16 <= 16 +PASSED: 16 >= 16 +PASSED: 16 == 16 +PASSED: 32 < 64 +PASSED: 32 <= 64 +PASSED: 32 > 64 +PASSED: 32 <= 32 +PASSED: 32 >= 32 +PASSED: 32 == 32 +PASSED: 64 < 128 +PASSED: 64 <= 128 +PASSED: 64 > 128 +PASSED: 64 <= 64 +PASSED: 64 >= 64 +PASSED: 64 == 64 +PASSED: 128 < 256 +PASSED: 128 <= 256 +PASSED: 128 > 256 +PASSED: 128 <= 128 +PASSED: 128 >= 128 +PASSED: 128 == 128 +PASSED: 256 < 512 +PASSED: 256 <= 512 +PASSED: 256 > 512 +PASSED: 256 <= 256 +PASSED: 256 >= 256 +PASSED: 256 == 256 +PASSED: 512 < 1024 +PASSED: 512 <= 1024 +PASSED: 512 > 1024 +PASSED: 512 <= 512 +PASSED: 512 >= 512 +PASSED: 512 == 512 +PASSED: 1024 < 2048 +PASSED: 1024 <= 2048 +PASSED: 1024 > 2048 +PASSED: 1024 <= 1024 +PASSED: 1024 >= 1024 +PASSED: 1024 == 1024 +PASSED: 2048 < 4096 +PASSED: 2048 <= 4096 +PASSED: 2048 > 4096 +PASSED: 2048 <= 2048 +PASSED: 2048 >= 2048 +PASSED: 2048 == 2048 +PASSED: 4096 < 8192 +PASSED: 4096 <= 8192 +PASSED: 4096 > 8192 +PASSED: 4096 <= 4096 +PASSED: 4096 >= 4096 +PASSED: 4096 == 4096 +PASSED: 8192 < 16384 +PASSED: 8192 <= 16384 +PASSED: 8192 > 16384 +PASSED: 8192 <= 8192 +PASSED: 8192 >= 8192 +PASSED: 8192 == 8192 +PASSED: 16384 < 32768 +PASSED: 16384 <= 32768 +PASSED: 16384 > 32768 +PASSED: 16384 <= 16384 +PASSED: 16384 >= 16384 +PASSED: 16384 == 16384 +PASSED: 32768 < 65536 +PASSED: 32768 <= 65536 +PASSED: 32768 > 65536 +PASSED: 32768 <= 32768 +PASSED: 32768 >= 32768 +PASSED: 32768 == 32768 +PASSED: 65536 < 131072 +PASSED: 65536 <= 131072 +PASSED: 65536 > 131072 +PASSED: 65536 <= 65536 +PASSED: 65536 >= 65536 +PASSED: 65536 == 65536 +PASSED: 131072 < 262144 +PASSED: 131072 <= 262144 +PASSED: 131072 > 262144 +PASSED: 131072 <= 131072 +PASSED: 131072 >= 131072 +PASSED: 131072 == 131072 +PASSED: 262144 < 524288 +PASSED: 262144 <= 524288 +PASSED: 262144 > 524288 +PASSED: 262144 <= 262144 +PASSED: 262144 >= 262144 +PASSED: 262144 == 262144 +PASSED: 524288 < 1048576 +PASSED: 524288 <= 1048576 +PASSED: 524288 > 1048576 +PASSED: 524288 <= 524288 +PASSED: 524288 >= 524288 +PASSED: 524288 == 524288 +PASSED: 1048576 < 2097152 +PASSED: 1048576 <= 2097152 +PASSED: 1048576 > 2097152 +PASSED: 1048576 <= 1048576 +PASSED: 1048576 >= 1048576 +PASSED: 1048576 == 1048576 +PASSED: 2097152 < 4194304 +PASSED: 2097152 <= 4194304 +PASSED: 2097152 > 4194304 +PASSED: 2097152 <= 2097152 +PASSED: 2097152 >= 2097152 +PASSED: 2097152 == 2097152 +PASSED: 4194304 < 8388608 +PASSED: 4194304 <= 8388608 +PASSED: 4194304 > 8388608 +PASSED: 4194304 <= 4194304 +PASSED: 4194304 >= 4194304 +PASSED: 4194304 == 4194304 +PASSED: 8388608 < 16777216 +PASSED: 8388608 <= 16777216 +PASSED: 8388608 > 16777216 +PASSED: 8388608 <= 8388608 +PASSED: 8388608 >= 8388608 +PASSED: 8388608 == 8388608 +PASSED: 16777216 < 33554432 +PASSED: 16777216 <= 33554432 +PASSED: 16777216 > 33554432 +PASSED: 16777216 <= 16777216 +PASSED: 16777216 >= 16777216 +PASSED: 16777216 == 16777216 +PASSED: 33554432 < 67108864 +PASSED: 33554432 <= 67108864 +PASSED: 33554432 > 67108864 +PASSED: 33554432 <= 33554432 +PASSED: 33554432 >= 33554432 +PASSED: 33554432 == 33554432 +PASSED: 67108864 < 134217728 +PASSED: 67108864 <= 134217728 +PASSED: 67108864 > 134217728 +PASSED: 67108864 <= 67108864 +PASSED: 67108864 >= 67108864 +PASSED: 67108864 == 67108864 +PASSED: 134217728 < 268435456 +PASSED: 134217728 <= 268435456 +PASSED: 134217728 > 268435456 +PASSED: 134217728 <= 134217728 +PASSED: 134217728 >= 134217728 +PASSED: 134217728 == 134217728 +PASSED: 268435456 < 536870912 +PASSED: 268435456 <= 536870912 +PASSED: 268435456 > 536870912 +PASSED: 268435456 <= 268435456 +PASSED: 268435456 >= 268435456 +PASSED: 268435456 == 268435456 +PASSED: 536870912 < 1073741824 +PASSED: 536870912 <= 1073741824 +PASSED: 536870912 > 1073741824 +PASSED: 536870912 <= 536870912 +PASSED: 536870912 >= 536870912 +PASSED: 536870912 == 536870912 diff --git a/testsuite/tests/primops/should_run/all.T b/testsuite/tests/primops/should_run/all.T index 954cc30ef9..cad58c1909 100644 --- a/testsuite/tests/primops/should_run/all.T +++ b/testsuite/tests/primops/should_run/all.T @@ -37,3 +37,4 @@ test('ShrinkSmallMutableArrayB', normal, compile_and_run, ['']) test('T14664', normal, compile_and_run, ['']) test('CStringLength', normal, compile_and_run, ['-O2']) test('NonNativeSwitch', normal, compile_and_run, ['-O2']) +test('Sized', normal, compile_and_run, ['']) |