Synthesizer.LLVM.Simple.Value
Documentation
Instances
| (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
Instances
| 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