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

Safe HaskellNone

LLVM.Extra.Multi.Vector

Contents

Synopsis

Documentation

newtype T n a Source

Constructors

Cons (Vector n a) 

Instances

PositiveT n => C (T n) 
(PositiveT n, C a) => Undefined (T n a) 

size :: PositiveT n => T n a -> IntSource

zip :: T n a -> T n b -> T n (a, b)Source

zip3 :: T n a -> T n b -> T n c -> T n (a, b, c)Source

unzip :: T n (a, b) -> (T n a, T n b)Source

unzip3 :: T n (a, b, c) -> (T n a, T n b, T n c)Source

class C a whereSource

Associated Types

type Vector n a :: *Source

Methods

undef :: PositiveT n => T n aSource

shuffleMatch :: PositiveT n => ConstValue (Vector n Word32) -> T n a -> CodeGenFunction r (T n a)Source

extract :: PositiveT n => Value Word32 -> T n a -> CodeGenFunction r (T a)Source

insert :: PositiveT n => Value Word32 -> T a -> T n a -> CodeGenFunction r (T n a)Source

Instances

C Double 
C Float 
(C a, C b) => C (a, b) 
(C a, C b, C c) => C (a, b, c) 

insertPrimitive :: (PositiveT n, IsPrimitive a, Vector n a ~ Value (Vector n a), ValueTuple a ~ Value a) => Value Word32 -> T a -> T n a -> CodeGenFunction r (T n a)Source

assemble :: (PositiveT n, C a) => [T a] -> CodeGenFunction r (T n a)Source

dissect :: (PositiveT n, C a) => T n a -> CodeGenFunction r [T a]Source

function based on classes from Vector module

shuffleMatchGen :: (Vector n a ~ v, Simple v, n ~ Size v) => ConstValue (Vector n Word32) -> T n a -> CodeGenFunction r (T n a)Source

extractGen :: (Vector n a ~ v, Simple v, ValueTuple a ~ Element v) => Value Word32 -> T n a -> CodeGenFunction r (T a)Source

insertGen :: (Vector n a ~ v, C v, ValueTuple a ~ Element v) => Value Word32 -> T a -> T n a -> CodeGenFunction r (T n a)Source