llvm-extra-0.8.1: Utility functions for the llvm interface

Safe HaskellNone

LLVM.Extra.Multi.Class

Documentation

class C value whereSource

Associated Types

type Size value :: *Source

Methods

switch :: f T -> f (T (Size value)) -> f valueSource

Instances

C T 
Positive n => C (T n) 

newtype Const a value Source

Constructors

Const 

Fields

getConst :: value a
 

undef :: (C value, Size value ~ n, Positive n, C a) => value aSource

zero :: (C value, Size value ~ n, Positive n, C a) => value aSource

newtype Op0 r a value Source

Constructors

Op0 

Fields

runOp0 :: CodeGenFunction r (value a)
 

newtype Op1 r a b value Source

Constructors

Op1 

Fields

runOp1 :: value a -> CodeGenFunction r (value b)
 

newtype Op2 r a b c value Source

Constructors

Op2 

Fields

runOp2 :: value a -> value b -> CodeGenFunction r (value c)
 

add :: (Positive n, Additive a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

sub :: (Positive n, Additive a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

neg :: (Positive n, Additive a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

mul :: (Positive n, PseudoRing a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

fdiv :: (Positive n, Field a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

scale :: (Positive n, PseudoModule v, n ~ Size value, C value) => value (Scalar v) -> value v -> CodeGenFunction r (value v)Source

min :: (Positive n, Real a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

max :: (Positive n, Real a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

abs :: (Positive n, Real a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

signum :: (Positive n, Real a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

truncate :: (Positive n, Fraction a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

fraction :: (Positive n, Fraction a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

sqrt :: (Positive n, Algebraic a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

pi :: (Positive n, Transcendental a, n ~ Size value, C value) => CodeGenFunction r (value a)Source

sin :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

log :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

exp :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

cos :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source

pow :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

cmp :: (Positive n, Comparison a, n ~ Size value, C value) => CmpPredicate -> value a -> value a -> CodeGenFunction r (value Bool)Source

fcmp :: (Positive n, FloatingComparison a, n ~ Size value, C value) => FPPredicate -> value a -> value a -> CodeGenFunction r (value Bool)Source

and :: (Positive n, Logic a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

xor :: (Positive n, Logic a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

or :: (Positive n, Logic a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a)Source

inv :: (Positive n, Logic a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a)Source