Changes between Version 12 and Version 13 of ShuffleVector


Ignore:
Timestamp:
May 7, 2014, 12:37:02 AM (5 years ago)
Author:
cameron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ShuffleVector

    v12 v13  
    3131these special cases?
    3232
    33 The [wiki:ShufflePatternLibrary Shuffle Pattern Library] attempts to do this.
     33== Project Components ==
     34
     35  1.  Analysis - analysis components analyze {{{shufflevector}}} instances, classifying the type of shufflevector operation.
     36
     37The {{{isByteSwap64}}} function of [https://github.com/laishzh/LLVM_ShuffleVector_Optimizer/blob/master/ByteSwap/sfl_to_bswap.cpp] is a simple
     38analysis tool.   The [wiki:ShufflePatternLibrary Shuffle Pattern Library] is an attempt to create a systematic infrastructure for pattern analysis.
     39
     40  1.  !ShuffleVector IR Transformations.   IR transformations replace {{{shufflevector}}} instances with a sequence of other LLVM IR operations. The {{{replaceShuffleVectorWithByteSwap64}}} of [https://github.com/laishzh/LLVM_ShuffleVector_Optimizer/blob/master/ByteSwap/sfl_to_bswap.cpp sfl_to_bswap.cpp] is an example.
     41
     42  1.  !ShuffleVector Code Generation.   Some patterns recognized by the analysis phase may represent operations that cannot be conveniently be expressed by other LLVM IR code, but may nevertheless correspond to specific machine instructions on a particular target architecture.
     43Examples may be found in the BitShuffle subproject to generate code for the Haswell new instructions {{{pext}}} and {{{pdep}}}.
     44
     45  1.  Pass Management.   Pass managers implement !ShuffleVector analysis and transformation according to the Pass interface. {{{ShufflevectorToByteSwapPass}}} of [https://github.com/laishzh/LLVM_ShuffleVector_Optimizer/blob/master/ByteSwap/sfl_to_bswap.cpp sfl_to_bswap.cpp] is an example.
     46
    3447
    3548== Lai !ShengZhang's !GitHub ==
     
    3750[https://github.com/laishzh/LLVM_ShuffleVector_Optimizer ]
    3851
    39 == Vectorized Sequential Code ==
    40 
    41 If there is no known fully parallel implementation of a particular case, it may
    42 still be possible to partially parallelize by making a vectorized sequential
    43 loop.   
    44 
    45 == Shuffling Bit-By-Bit ==
    46 
    47 There are many interesting possibilities with shuffle masks that perform bit-by-bit selection.
    48 See the BitShuffle subproject.
    49