Documentation
(C a, IsArithmetic a, IsConst a) => Enum (T a) | |
(C a, IsConst a, IsFloating a) => C (T a) | |
(C a, IsConst a, IsFloating a) => C (T a) | |
(C a, IsConst a, IsFloating a) => C (T a) | |
(C a, IsArithmetic a, IsConst a) => C (T a) | |
(IsArithmetic a, IsConst a) => C (T a) | We do not require a numeric prelude superclass, thus also LLVM only types like vectors are instances. |
(C a, IsArithmetic a, IsConst a, IsPrimitive a, IsPowerOf2 n) => C (T a) (T (Vector n a)) | |
(C a, IsArithmetic a, IsConst a) => C (T a) (T a) | |
IsConst a => Flatten (T a) (Value a) |
constantValue :: Value a -> T aSource
class Flatten value register | value -> register whereSource
flatten :: value -> CodeGenFunction r registerSource
Flatten () () | |
(C v, Flatten v r) => Flatten (T v) r | |
Flatten v r => Flatten (T v) (T r) | |
Flatten ah al => Flatten (Parameter ah) (Parameter al) | |
Flatten ah al => Flatten (Result ah) (Result al) | |
Flatten ah al => Flatten (Parameter ah) (Parameter al) | |
Flatten ah al => Flatten (State ah) (State al) | |
Flatten ah al => Flatten (Parameter ah) (Parameter al) | |
Flatten ah al => Flatten (Parameter ah) (Parameter al) | |
IsConst a => Flatten (T a) (Value a) | |
Flatten ah al => Flatten (ParameterPacked ah) (ParameterPacked al) | |
Flatten ah al => Flatten (Parameter ah) (Parameter al) | |
(Flatten ah al, Flatten bh bl) => Flatten (ah, bh) (al, bl) | |
Flatten ah al => Flatten (CascadeParameter n ah) (CascadeParameter n al) | |
(Flatten ah al, Nat n) => Flatten (Parameter n ah) (Parameter n al) | |
(Flatten ah al, Flatten bh bl, Flatten ch cl) => Flatten (ah, bh, ch) (al, bl, cl) |
flattenTraversable :: (Flatten value register, Traversable f) => f value -> CodeGenFunction r (f register)Source
unfoldFunctor :: (Flatten value register, Functor f) => f register -> f valueSource