{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_HADDOCK hide, prune, not-home #-}
module MLIR.AST.Dialect.Generated.Arith where
import Prelude (Int, Double, Maybe(..), Bool(..), (++), (<$>), ($), (<>), Show)
import qualified Prelude
import Data.Int (Int64)
import qualified Data.Maybe
import Data.Array (Ix)
import qualified Data.Array.IArray as IArray
import qualified Data.ByteString as BS
import qualified Data.Map.Strict as M
import qualified Control.Monad
import MLIR.AST ( Attribute(..), Type(..), AbstractOperation(..), ResultTypes(..)
, Location(..), Signedness(..), DenseElements(..)
, NamedAttributes, Name
, pattern NoAttrs )
import qualified MLIR.AST as AST
import MLIR.AST.Builder (Value, EndOfBlock, MonadBlockBuilder, RegionBuilderT)
import qualified MLIR.AST.Builder as AST
import qualified MLIR.AST.IStorableArray as AST
import qualified MLIR.AST.PatternUtil as PatternUtil
import qualified MLIR.AST.Dialect.Affine as Affine
pattern AddF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bAddF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mAddF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
AddF loc ty lhs_ rhs_ = Operation
{ opName = "arith.addf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
addf :: () => MonadBlockBuilder m => Value -> Value -> m Value
addf :: Value -> Value -> m Value
addf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.addf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern AddI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bAddI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mAddI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
AddI loc ty lhs_ rhs_ = Operation
{ opName = "arith.addi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
addi :: () => MonadBlockBuilder m => Value -> Value -> m Value
addi :: Value -> Value -> m Value
addi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.addi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern AddUIExtended :: () => () => Location -> Type -> Type -> operand -> operand -> AbstractOperation operand
pattern $bAddUIExtended :: Location
-> Type -> Type -> operand -> operand -> AbstractOperation operand
$mAddUIExtended :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
AddUIExtended loc ty0 ty1 lhs_ rhs_ = Operation
{ opName = "arith.addui_extended"
, opLocation = loc
, opResultTypes = Explicit [ty0, ty1]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
addui_extended :: () => MonadBlockBuilder m => Type -> Type -> Value -> Value -> m [Value]
addui_extended :: Type -> Type -> Value -> Value -> m [Value]
addui_extended Type
ty0 Type
ty1 Value
lhs_ Value
rhs_ = do
(Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.addui_extended"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0, Type
ty1]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern AndI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bAndI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mAndI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
AndI loc ty lhs_ rhs_ = Operation
{ opName = "arith.andi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
andi :: () => MonadBlockBuilder m => Value -> Value -> m Value
andi :: Value -> Value -> m Value
andi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.andi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern Bitcast :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bBitcast :: Location -> Type -> operand -> AbstractOperation operand
$mBitcast :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
Bitcast loc ty0 in__ = Operation
{ opName = "arith.bitcast"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
bitcast :: () => MonadBlockBuilder m => Type -> Value -> m Value
bitcast :: Type -> Value -> m Value
bitcast Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.bitcast"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern CeilDivSI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bCeilDivSI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mCeilDivSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
CeilDivSI loc ty lhs_ rhs_ = Operation
{ opName = "arith.ceildivsi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
ceildivsi :: () => MonadBlockBuilder m => Value -> Value -> m Value
ceildivsi :: Value -> Value -> m Value
ceildivsi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.ceildivsi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern CeilDivUI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bCeilDivUI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mCeilDivUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
CeilDivUI loc ty lhs_ rhs_ = Operation
{ opName = "arith.ceildivui"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
ceildivui :: () => MonadBlockBuilder m => Value -> Value -> m Value
ceildivui :: Value -> Value -> m Value
ceildivui Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.ceildivui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern InternalConstantOpAttributes :: () => () => Attribute -> NamedAttributes
pattern $bInternalConstantOpAttributes :: Attribute -> Map Name Attribute
$mInternalConstantOpAttributes :: forall r.
Map Name Attribute -> (Attribute -> r) -> (Void# -> r) -> r
InternalConstantOpAttributes value_ <- ((\m -> (M.lookup "value" m)) -> (Just (value_)))
where InternalConstantOpAttributes Attribute
value_ = [(Name, Attribute)] -> Map Name Attribute
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList ([(Name, Attribute)] -> Map Name Attribute)
-> [(Name, Attribute)] -> Map Name Attribute
forall a b. (a -> b) -> a -> b
$ [(Name
"value", Attribute
value_)]
pattern Constant :: () => () => Location -> Type -> Attribute -> AbstractOperation operand
pattern $bConstant :: Location -> Type -> Attribute -> AbstractOperation operand
$mConstant :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> Attribute -> r) -> (Void# -> r) -> r
Constant loc ty0 value_ = Operation
{ opName = "arith.constant"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = []
, opRegions = []
, opSuccessors = []
, opAttributes = (InternalConstantOpAttributes value_)
}
constant :: () => MonadBlockBuilder m => Type -> Attribute -> m Value
constant :: Type -> Attribute -> m Value
constant Type
ty0 Attribute
value_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.constant"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = []
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Attribute -> Map Name Attribute
InternalConstantOpAttributes Attribute
value_)
}))
pattern DivF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bDivF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mDivF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
DivF loc ty lhs_ rhs_ = Operation
{ opName = "arith.divf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
divf :: () => MonadBlockBuilder m => Value -> Value -> m Value
divf :: Value -> Value -> m Value
divf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.divf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern DivSI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bDivSI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mDivSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
DivSI loc ty lhs_ rhs_ = Operation
{ opName = "arith.divsi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
divsi :: () => MonadBlockBuilder m => Value -> Value -> m Value
divsi :: Value -> Value -> m Value
divsi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.divsi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern DivUI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bDivUI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mDivUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
DivUI loc ty lhs_ rhs_ = Operation
{ opName = "arith.divui"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
divui :: () => MonadBlockBuilder m => Value -> Value -> m Value
divui :: Value -> Value -> m Value
divui Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.divui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern ExtF :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bExtF :: Location -> Type -> operand -> AbstractOperation operand
$mExtF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
ExtF loc ty0 in__ = Operation
{ opName = "arith.extf"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
extf :: () => MonadBlockBuilder m => Type -> Value -> m Value
extf :: Type -> Value -> m Value
extf Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.extf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern ExtSI :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bExtSI :: Location -> Type -> operand -> AbstractOperation operand
$mExtSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
ExtSI loc ty0 in__ = Operation
{ opName = "arith.extsi"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
extsi :: () => MonadBlockBuilder m => Type -> Value -> m Value
extsi :: Type -> Value -> m Value
extsi Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.extsi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern ExtUI :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bExtUI :: Location -> Type -> operand -> AbstractOperation operand
$mExtUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
ExtUI loc ty0 in__ = Operation
{ opName = "arith.extui"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
extui :: () => MonadBlockBuilder m => Type -> Value -> m Value
extui :: Type -> Value -> m Value
extui Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.extui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern FPToSI :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bFPToSI :: Location -> Type -> operand -> AbstractOperation operand
$mFPToSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
FPToSI loc ty0 in__ = Operation
{ opName = "arith.fptosi"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
fptosi :: () => MonadBlockBuilder m => Type -> Value -> m Value
fptosi :: Type -> Value -> m Value
fptosi Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.fptosi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern FPToUI :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bFPToUI :: Location -> Type -> operand -> AbstractOperation operand
$mFPToUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
FPToUI loc ty0 in__ = Operation
{ opName = "arith.fptoui"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
fptoui :: () => MonadBlockBuilder m => Type -> Value -> m Value
fptoui :: Type -> Value -> m Value
fptoui Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.fptoui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern FloorDivSI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bFloorDivSI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mFloorDivSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
FloorDivSI loc ty lhs_ rhs_ = Operation
{ opName = "arith.floordivsi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
floordivsi :: () => MonadBlockBuilder m => Value -> Value -> m Value
floordivsi :: Value -> Value -> m Value
floordivsi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.floordivsi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern IndexCast :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bIndexCast :: Location -> Type -> operand -> AbstractOperation operand
$mIndexCast :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
IndexCast loc ty0 in__ = Operation
{ opName = "arith.index_cast"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
index_cast :: () => MonadBlockBuilder m => Type -> Value -> m Value
index_cast :: Type -> Value -> m Value
index_cast Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.index_cast"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern IndexCastUI :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bIndexCastUI :: Location -> Type -> operand -> AbstractOperation operand
$mIndexCastUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
IndexCastUI loc ty0 in__ = Operation
{ opName = "arith.index_castui"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
index_castui :: () => MonadBlockBuilder m => Type -> Value -> m Value
index_castui :: Type -> Value -> m Value
index_castui Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.index_castui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MaxNumF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMaxNumF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMaxNumF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MaxNumF loc ty lhs_ rhs_ = Operation
{ opName = "arith.maxnumf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
maxnumf :: () => MonadBlockBuilder m => Value -> Value -> m Value
maxnumf :: Value -> Value -> m Value
maxnumf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.maxnumf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MaxSI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMaxSI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMaxSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MaxSI loc ty lhs_ rhs_ = Operation
{ opName = "arith.maxsi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
maxsi :: () => MonadBlockBuilder m => Value -> Value -> m Value
maxsi :: Value -> Value -> m Value
maxsi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.maxsi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MaxUI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMaxUI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMaxUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MaxUI loc ty lhs_ rhs_ = Operation
{ opName = "arith.maxui"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
maxui :: () => MonadBlockBuilder m => Value -> Value -> m Value
maxui :: Value -> Value -> m Value
maxui Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.maxui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MaximumF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMaximumF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMaximumF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MaximumF loc ty lhs_ rhs_ = Operation
{ opName = "arith.maximumf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
maximumf :: () => MonadBlockBuilder m => Value -> Value -> m Value
maximumf :: Value -> Value -> m Value
maximumf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.maximumf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MinNumF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMinNumF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMinNumF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MinNumF loc ty lhs_ rhs_ = Operation
{ opName = "arith.minnumf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
minnumf :: () => MonadBlockBuilder m => Value -> Value -> m Value
minnumf :: Value -> Value -> m Value
minnumf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.minnumf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MinSI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMinSI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMinSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MinSI loc ty lhs_ rhs_ = Operation
{ opName = "arith.minsi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
minsi :: () => MonadBlockBuilder m => Value -> Value -> m Value
minsi :: Value -> Value -> m Value
minsi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.minsi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MinUI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMinUI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMinUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MinUI loc ty lhs_ rhs_ = Operation
{ opName = "arith.minui"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
minui :: () => MonadBlockBuilder m => Value -> Value -> m Value
minui :: Value -> Value -> m Value
minui Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.minui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MinimumF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMinimumF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMinimumF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MinimumF loc ty lhs_ rhs_ = Operation
{ opName = "arith.minimumf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
minimumf :: () => MonadBlockBuilder m => Value -> Value -> m Value
minimumf :: Value -> Value -> m Value
minimumf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.minimumf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MulF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMulF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMulF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MulF loc ty lhs_ rhs_ = Operation
{ opName = "arith.mulf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
mulf :: () => MonadBlockBuilder m => Value -> Value -> m Value
mulf :: Value -> Value -> m Value
mulf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.mulf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MulI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMulI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mMulI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MulI loc ty lhs_ rhs_ = Operation
{ opName = "arith.muli"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
muli :: () => MonadBlockBuilder m => Value -> Value -> m Value
muli :: Value -> Value -> m Value
muli Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.muli"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MulSIExtended :: () => () => Location -> Type -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMulSIExtended :: Location
-> Type -> Type -> operand -> operand -> AbstractOperation operand
$mMulSIExtended :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MulSIExtended loc ty0 ty1 lhs_ rhs_ = Operation
{ opName = "arith.mulsi_extended"
, opLocation = loc
, opResultTypes = Explicit [ty0, ty1]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
mulsi_extended :: () => MonadBlockBuilder m => Type -> Type -> Value -> Value -> m [Value]
mulsi_extended :: Type -> Type -> Value -> Value -> m [Value]
mulsi_extended Type
ty0 Type
ty1 Value
lhs_ Value
rhs_ = do
(Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.mulsi_extended"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0, Type
ty1]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern MulUIExtended :: () => () => Location -> Type -> Type -> operand -> operand -> AbstractOperation operand
pattern $bMulUIExtended :: Location
-> Type -> Type -> operand -> operand -> AbstractOperation operand
$mMulUIExtended :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
MulUIExtended loc ty0 ty1 lhs_ rhs_ = Operation
{ opName = "arith.mului_extended"
, opLocation = loc
, opResultTypes = Explicit [ty0, ty1]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
mului_extended :: () => MonadBlockBuilder m => Type -> Type -> Value -> Value -> m [Value]
mului_extended :: Type -> Type -> Value -> Value -> m [Value]
mului_extended Type
ty0 Type
ty1 Value
lhs_ Value
rhs_ = do
(Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.mului_extended"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0, Type
ty1]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern NegF :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bNegF :: Location -> Type -> operand -> AbstractOperation operand
$mNegF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
NegF loc ty operand_ = Operation
{ opName = "arith.negf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [operand_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
negf :: () => MonadBlockBuilder m => Value -> m Value
negf :: Value -> m Value
negf Value
operand_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.negf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
operand_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
operand_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern OrI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bOrI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mOrI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
OrI loc ty lhs_ rhs_ = Operation
{ opName = "arith.ori"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
ori :: () => MonadBlockBuilder m => Value -> Value -> m Value
ori :: Value -> Value -> m Value
ori Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.ori"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern RemF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bRemF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mRemF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
RemF loc ty lhs_ rhs_ = Operation
{ opName = "arith.remf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
remf :: () => MonadBlockBuilder m => Value -> Value -> m Value
remf :: Value -> Value -> m Value
remf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.remf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern RemSI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bRemSI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mRemSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
RemSI loc ty lhs_ rhs_ = Operation
{ opName = "arith.remsi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
remsi :: () => MonadBlockBuilder m => Value -> Value -> m Value
remsi :: Value -> Value -> m Value
remsi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.remsi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern RemUI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bRemUI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mRemUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
RemUI loc ty lhs_ rhs_ = Operation
{ opName = "arith.remui"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
remui :: () => MonadBlockBuilder m => Value -> Value -> m Value
remui :: Value -> Value -> m Value
remui Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.remui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern SIToFP :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bSIToFP :: Location -> Type -> operand -> AbstractOperation operand
$mSIToFP :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
SIToFP loc ty0 in__ = Operation
{ opName = "arith.sitofp"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
sitofp :: () => MonadBlockBuilder m => Type -> Value -> m Value
sitofp :: Type -> Value -> m Value
sitofp Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.sitofp"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern ShLI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bShLI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mShLI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
ShLI loc ty lhs_ rhs_ = Operation
{ opName = "arith.shli"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
shli :: () => MonadBlockBuilder m => Value -> Value -> m Value
shli :: Value -> Value -> m Value
shli Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.shli"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern ShRSI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bShRSI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mShRSI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
ShRSI loc ty lhs_ rhs_ = Operation
{ opName = "arith.shrsi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
shrsi :: () => MonadBlockBuilder m => Value -> Value -> m Value
shrsi :: Value -> Value -> m Value
shrsi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.shrsi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern ShRUI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bShRUI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mShRUI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
ShRUI loc ty lhs_ rhs_ = Operation
{ opName = "arith.shrui"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
shrui :: () => MonadBlockBuilder m => Value -> Value -> m Value
shrui :: Value -> Value -> m Value
shrui Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.shrui"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern SubF :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bSubF :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mSubF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
SubF loc ty lhs_ rhs_ = Operation
{ opName = "arith.subf"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
subf :: () => MonadBlockBuilder m => Value -> Value -> m Value
subf :: Value -> Value -> m Value
subf Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.subf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern SubI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bSubI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mSubI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
SubI loc ty lhs_ rhs_ = Operation
{ opName = "arith.subi"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
subi :: () => MonadBlockBuilder m => Value -> Value -> m Value
subi :: Value -> Value -> m Value
subi Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.subi"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern TruncF :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bTruncF :: Location -> Type -> operand -> AbstractOperation operand
$mTruncF :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
TruncF loc ty0 in__ = Operation
{ opName = "arith.truncf"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
truncf :: () => MonadBlockBuilder m => Type -> Value -> m Value
truncf :: Type -> Value -> m Value
truncf Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.truncf"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern TruncI :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bTruncI :: Location -> Type -> operand -> AbstractOperation operand
$mTruncI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
TruncI loc ty0 in__ = Operation
{ opName = "arith.trunci"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
trunci :: () => MonadBlockBuilder m => Type -> Value -> m Value
trunci :: Type -> Value -> m Value
trunci Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.trunci"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern UIToFP :: () => () => Location -> Type -> operand -> AbstractOperation operand
pattern $bUIToFP :: Location -> Type -> operand -> AbstractOperation operand
$mUIToFP :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> r) -> (Void# -> r) -> r
UIToFP loc ty0 in__ = Operation
{ opName = "arith.uitofp"
, opLocation = loc
, opResultTypes = Explicit [ty0]
, opOperands = [in__]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
uitofp :: () => MonadBlockBuilder m => Type -> Value -> m Value
uitofp :: Type -> Value -> m Value
uitofp Type
ty0 Value
in__ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.uitofp"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
in__)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
pattern XOrI :: () => () => Location -> Type -> operand -> operand -> AbstractOperation operand
pattern $bXOrI :: Location -> Type -> operand -> operand -> AbstractOperation operand
$mXOrI :: forall r operand.
AbstractOperation operand
-> (Location -> Type -> operand -> operand -> r)
-> (Void# -> r)
-> r
XOrI loc ty lhs_ rhs_ = Operation
{ opName = "arith.xori"
, opLocation = loc
, opResultTypes = Explicit [ty]
, opOperands = [lhs_, rhs_]
, opRegions = []
, opSuccessors = []
, opAttributes = (NoAttrs)
}
xori :: () => MonadBlockBuilder m => Value -> Value -> m Value
xori :: Value -> Value -> m Value
xori Value
lhs_ Value
rhs_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.xori"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [(Value -> Type
AST.typeOf Value
lhs_)]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
lhs_), (Value -> Name
AST.operand Value
rhs_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))
select :: () => MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value
select :: Type -> Value -> Value -> Value -> m Value
select Type
ty0 Value
condition_ Value
true_value_ Value
false_value_ = do
([Value] -> Value) -> m [Value] -> m Value
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
Control.Monad.liftM [Value] -> Value
forall a. [a] -> a
Prelude.head (Operation -> m [Value]
forall (m :: * -> *). MonadBlockBuilder m => Operation -> m [Value]
AST.emitOp (Operation :: forall operand.
Name
-> Location
-> ResultTypes
-> [operand]
-> [Region]
-> [Name]
-> Map Name Attribute
-> AbstractOperation operand
Operation
{ opName :: Name
opName = Name
"arith.select"
, opLocation :: Location
opLocation = Location
UnknownLocation
, opResultTypes :: ResultTypes
opResultTypes = [Type] -> ResultTypes
Explicit [Type
ty0]
, opOperands :: [Name]
opOperands = [(Value -> Name
AST.operand Value
condition_), (Value -> Name
AST.operand Value
true_value_), (Value -> Name
AST.operand Value
false_value_)]
, opRegions :: [Region]
opRegions = []
, opSuccessors :: [Name]
opSuccessors = []
, opAttributes :: Map Name Attribute
opAttributes = (Map Name Attribute
NoAttrs)
}))