Changes between Version 9 and Version 10 of SimdLlvm


Ignore:
Timestamp:
Oct 5, 2011 12:50:00 PM (3 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SimdLlvm

    v9 v10  
    3636== API == 
    3737 
    38 We use the following API extension for `GHC.Prim`.  Due to the odd manner in which sized integral types are implemented in `primops.txt.pp` (see heading "The word size story."), we need to introduce vector type for scalar types that do not exist as unboxed types in `GHC.Prim`. We obviously can't use "[t]he word size story" for SIMD vectors as they are packed, unboxed data types. 
     38We use the following API extension for `GHC.Prim`.  Due to the odd manner in which sized integral types are implemented in `primops.txt.pp` (see heading "The word size story."), we need to introduce vector types for scalar types that do not exist as unboxed types in `GHC.Prim`. We obviously can't use "[t]he word size story" for SIMD vectors as they are packed, unboxed data types. 
    3939 
    4040=== Types === 
     
    4343 
    4444Vector length constants: `intVecLen`, `intVec8Len`, `intVec16Len`, `intVec32Len`, `intVec64Len`, `wordVecLen`, `wordVec8Len`, `wordVec16Len`, `wordVec32Len`, `wordVec64Len`, `floatVecLen`, and `doubleVecLen`.  Each of these constants is of type `Int#`. 
     45 
     46LLVM's [http://llvm.org/docs/LangRef.html#vectorops vector operations:] (`INT32`, `INT64`, `WORD32`, and `WORD64` are defined as `primops.txt.pp`) 
     47{{{ 
     48extractIntVec    :: IntVec# -> Int# -> Int# 
     49extractInt8Vec   :: Int8Vec# -> Int# -> Int# 
     50extractInt16Vec  :: Int16Vec# -> Int# -> Int# 
     51extractInt32Vec  :: Int32Vec# -> Int# -> INT32 
     52extractInt64Vec  :: Int64Vec# -> Int# -> INT64 
     53extractWordVec   :: WordVec# -> Int# -> Int# 
     54extractWord8Vec  :: Word8Vec# -> Int# -> Word# 
     55extractWord16Vec :: Word16Vec# -> Int# -> Word# 
     56extractWord32Vec :: Word32Vec# -> Int# -> WORD32 
     57extractWord64Vec :: Word32Vec# -> Int# -> WORD64 
     58extractFloatVec  :: FloatVec# -> Int# -> Float# 
     59extractDoubleVec :: DoubleVec# -> Int# -> Double# 
     60}}} 
    4561 
    4662