{-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE MagicHash #-} module T20376 where import GHC.Exts import GHC.Word import Data.Bits foo0 (# #) = popCnt# 123456789## foo1 (# #) = popCnt8# 89## foo2 (# #) = popCnt16# 56789## foo3 (# #) = popCnt32# 123456789## foo0' = popCount (123456789 :: Word) foo1' = popCount ( 89 :: Word8) foo2' = popCount ( 56789 :: Word16) foo3' = popCount (123456789 :: Word32) foo4' = popCount (123456789123456789 :: Word64) ctz0 (# #) = ctz# 0xC0000000## ctz1 (# #) = ctz8# 0xC0## ctz2 (# #) = ctz16# 0xC000## ctz3 (# #) = ctz32# 0xC0000000## ctz0' = countTrailingZeros (0xC0000000 :: Word) ctz1' = countTrailingZeros ( 0xC0 :: Word8) ctz2' = countTrailingZeros ( 0xC000 :: Word16) ctz3' = countTrailingZeros (0xC0000000 :: Word32) ctz4' = countTrailingZeros (0xC000000000000000 :: Word64) clz1 (# #) = clz8# 0x04## clz2 (# #) = clz16# 0x0004## clz3 (# #) = clz32# 0x00000004## clz1' = countLeadingZeros ( 0x04 :: Word8) clz2' = countLeadingZeros ( 0x0004 :: Word16) clz3' = countLeadingZeros (0x00000004 :: Word32) clz4' = countLeadingZeros (0x0000000000000004 :: Word64)