packages feed

llvm-tf-9.2: example/Align.hs

module Main (main) where

import qualified LLVM.ExecutionEngine as EE
import LLVM.Util.Proxy (Proxy(Proxy))
import LLVM.Core (Vector, unsafeTypeRef, initializeNativeTarget)

import Type.Data.Num.Decimal.Literal (D1, D4)

import Data.Word (Word32, Word64)


main :: IO ()
main = do
    -- Initialize jitter
    initializeNativeTarget

    td <- EE.getTargetData
    print (
        EE.littleEndian td,
        EE.dataLayoutStr td,
        EE.abiAlignmentOfType td $ unsafeTypeRef (Proxy :: Proxy Word32),
        EE.abiAlignmentOfType td $ unsafeTypeRef (Proxy :: Proxy Word64),
        EE.abiAlignmentOfType td $ unsafeTypeRef (Proxy :: Proxy (Vector D4 Float)),
        EE.abiAlignmentOfType td $ unsafeTypeRef (Proxy :: Proxy (Vector D1 Double)),
        EE.storeSizeOfType td $ unsafeTypeRef (Proxy :: Proxy (Vector D4 Float)),
        EE.intPtrType td
        )