    module Graphics.UI.SDL.CPUInfo
        ( hasRDTSC
        , hasMMX
        , hasMMXExt
        , has3DNow
        , has3DNowExt
        , hasSSE
        , hasSSE2
        , hasAltiVec
        ) where

    import Foreign.Marshal.Utils (toBool)

    foreign import ccall unsafe "SDL_HasRDTSC" sdlHasRDTSC :: Int
    -- |This function returns @True@ if the CPU has the RDTSC instruction.
    hasRDTSC :: Bool
    hasRDTSC :: Bool
    hasRDTSC = Int -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool Int
    sdlHasRDTSC

    foreign import ccall unsafe "SDL_HasMMX" sdlHasMMX :: Int
    -- |This function returns @True@ if the CPU has MMX features.
    hasMMX :: Bool
    hasMMX :: Bool
    hasMMX = Int -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool Int
    sdlHasMMX

    foreign import ccall unsafe "SDL_HasMMXExt" sdlHasMMXExt :: Int
    -- |This function returns @True@ if the CPU has MMX Ext. features.
    hasMMXExt :: Bool
    hasMMXExt :: Bool
    hasMMXExt = Int -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool Int
    sdlHasMMXExt

    foreign import ccall unsafe "SDL_Has3DNow" sdlHas3DNow :: Int
    -- |This function returns @True@ if the CPU has 3DNow features.
    has3DNow :: Bool
    has3DNow :: Bool
    has3DNow = Int -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool Int
    sdlHas3DNow

    foreign import ccall unsafe "SDL_Has3DNowExt" sdlHas3DNowExt :: Int
    -- |This function returns @True@ if the CPU has 3DNow! Ext. features.
    has3DNowExt :: Bool
    has3DNowExt :: Bool
    has3DNowExt = Int -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool Int
    sdlHas3DNowExt

    foreign import ccall unsafe "SDL_HasSSE" sdlHasSSE :: Int
    -- |This function returns @True@ if the CPU has SSE features.
    hasSSE :: Bool
    hasSSE :: Bool
    hasSSE = Int -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool Int
    sdlHasSSE

    foreign import ccall unsafe "SDL_HasSSE2" sdlHasSSE2 :: Int
    -- |This function returns @True@ if the CPU has SSE2 features.
    hasSSE2 :: Bool
    hasSSE2 :: Bool
    hasSSE2 = Int -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool Int
    sdlHasSSE2

    foreign import ccall unsafe "SDL_HasAltiVec" sdlHasAltiVec :: Int
    -- |This function returns @True@ if the CPU has AltiVec features.
    hasAltiVec :: Bool
    hasAltiVec :: Bool
    hasAltiVec = Int -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool Int
    sdlHasAltiVec