{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# OPTIONS_HADDOCK hide #-}
module LLVM.AST.Type.Flags (
NSW(..), NUW(..), FastMathFlags(..)
) where
import Data.Default.Class
import LLVM.AST.Instruction ( FastMathFlags(..) )
data NSW = NoSignedWrap | SignedWrap
data NUW = NoUnsignedWrap | UnsignedWrap
instance Default NSW where
def :: NSW
def = NSW
SignedWrap
instance Default NUW where
def :: NUW
def = NUW
UnsignedWrap
instance Default FastMathFlags where
#if MIN_VERSION_llvm_hs_pure(6,0,0)
def :: FastMathFlags
def = FastMathFlags :: Bool
-> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> FastMathFlags
FastMathFlags
{ allowReassoc :: Bool
allowReassoc = Bool
True
, noNaNs :: Bool
noNaNs = Bool
True
, noInfs :: Bool
noInfs = Bool
True
, noSignedZeros :: Bool
noSignedZeros = Bool
True
, allowReciprocal :: Bool
allowReciprocal = Bool
True
, allowContract :: Bool
allowContract = Bool
True
, approxFunc :: Bool
approxFunc = Bool
True
}
#else
def = UnsafeAlgebra
#endif