tic64x :: Platform
tic64x = Platform {
    name = "tic64x",
    types =
        [ (MachineVector 1 (NumType Signed S8),     "char")
        , (MachineVector 1 (NumType Signed S16),    "short")
        , (MachineVector 1 (NumType Signed S32),    "int")
        , (MachineVector 1 (NumType Signed S40),    "long")
        , (MachineVector 1 (NumType Signed S64),    "long long")
        , (MachineVector 1 (NumType Unsigned S8),   "unsigned char")
        , (MachineVector 1 (NumType Unsigned S16),  "unsigned short")
        , (MachineVector 1 (NumType Unsigned S32),  "unsigned")
        , (MachineVector 1 (NumType Unsigned S40),  "unsigned long")
        , (MachineVector 1 (NumType Unsigned S64),  "unsigned long long")
        , (MachineVector 1 BoolType,                "int")
        , (MachineVector 1 FloatType,               "float")
        , (MachineVector 1 DoubleType,              "double")
        , (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), "complexOf_float")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)),"complexOf_double")
        ] ,
    values =
        [ (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), \cx -> "complex_fun_float(" ++ showRe cx ++ "," ++ showIm cx ++ ")")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)), \cx -> "complex_fun_double(" ++ showRe cx ++ "," ++ showIm cx ++ ")")
        , (MachineVector 1 BoolType, \b -> if boolValue b then "1" else "0")
        ] ,
    includes = [ "feldspar_tic64x.h", "feldspar_array.h", "<c6x.h>", "<string.h>"
               , "<math.h>"],
    varFloating = True
}
tic64x :: Platform
tic64x = Platform {
    name = "tic64x",
    types =
        [ (MachineVector 1 (NumType Signed S8),     "char")
        , (MachineVector 1 (NumType Signed S16),    "short")
        , (MachineVector 1 (NumType Signed S32),    "int")
        , (MachineVector 1 (NumType Signed S40),    "long")
        , (MachineVector 1 (NumType Signed S64),    "long long")
        , (MachineVector 1 (NumType Unsigned S8),   "unsigned char")
        , (MachineVector 1 (NumType Unsigned S16),  "unsigned short")
        , (MachineVector 1 (NumType Unsigned S32),  "unsigned")
        , (MachineVector 1 (NumType Unsigned S40),  "unsigned long")
        , (MachineVector 1 (NumType Unsigned S64),  "unsigned long long")
        , (MachineVector 1 BoolType,                "int")
        , (MachineVector 1 FloatType,               "float")
        , (MachineVector 1 DoubleType,              "double")
        , (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), "complexOf_float")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)),"complexOf_double")
        ] ,
    values =
        [ (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), \cx -> "complex_fun_float(" ++ showRe cx ++ "," ++ showIm cx ++ ")")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)), \cx -> "complex_fun_double(" ++ showRe cx ++ "," ++ showIm cx ++ ")")
        , (MachineVector 1 BoolType, \b -> if boolValue b then "1" else "0")
        ] ,
    includes = [ "feldspar_tic64x.h", "feldspar_array.h", "<c6x.h>", "<string.h>"
               , "<math.h>"],
    varFloating = True
}
tic64x = Platform {
    name = "tic64x",
    types =
        [ (MachineVector 1 (NumType Signed S8),     "char")
        , (MachineVector 1 (NumType Signed S16),    "short")
        , (MachineVector 1 (NumType Signed S32),    "int")
        , (MachineVector 1 (NumType Signed S40),    "long")
        , (MachineVector 1 (NumType Signed S64),    "long long")
        , (MachineVector 1 (NumType Unsigned S8),   "unsigned char")
        , (MachineVector 1 (NumType Unsigned S16),  "unsigned short")
        , (MachineVector 1 (NumType Unsigned S32),  "unsigned")
        , (MachineVector 1 (NumType Unsigned S40),  "unsigned long")
        , (MachineVector 1 (NumType Unsigned S64),  "unsigned long long")
        , (MachineVector 1 BoolType,                "int")
        , (MachineVector 1 FloatType,               "float")
        , (MachineVector 1 DoubleType,              "double")
        , (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), "complexOf_float")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)),"complexOf_double")
        ] ,
    values =
        [ (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), \cx -> "complex_fun_float(" ++ showRe cx ++ "," ++ showIm cx ++ ")")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)), \cx -> "complex_fun_double(" ++ showRe cx ++ "," ++ showIm cx ++ ")")
        , (MachineVector 1 BoolType, \b -> if boolValue b then "1" else "0")
        ] ,
    includes = [ "feldspar_tic64x.h", "feldspar_array.h", "<c6x.h>", "<string.h>"
               , "<math.h>"],
    varFloating = True
}