Changes between Version 9 and Version 10 of SimdLlvm


Ignore:
Timestamp:
Oct 5, 2011 12:50:00 PM (4 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