Changes between Version 8 and Version 9 of IDISAproject


Ignore:
Timestamp:
May 6, 2011, 12:06:13 PM (8 years ago)
Author:
cameron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IDISAproject

    v8 v9  
    3232for fully general vertical and horizontal SIMD programming.
    3333
    34 === IDISA Vertical SIMD Syntax ===
     34=== IDISA Vertical Operations ===
    3535
    3636The following IDISA notation in C++ template syntax present
     
    5252individual operations and their semantics.
    5353
    54 === IDISA Horizontal SIMD Syntax ===
     54=== IDISA Horizontal Operations ===
    5555
    5656A slight variant of this notation provides a fully general
     
    6060vectors ''a'' and ''b'', let ''c'' be the ''2N'' bit concatenation of ''a'' and ''b''.
    6161Then ''v''=hsimd<''n''>::''f''(''a'', ''b'')  denotes the application of ''f''
    62 in the horizontal combination of all sets of adjacent fields of ''c'' such that
    63 ''v,,i,,,''=''f''(''c,,2i,,''), ''c,,2i+1,,'').
    64 
    65 See the list of [wiki:IDISA_Horizontal IDISA Horizontal] operations for the
     62in the horizontal combination of all sets of adjacent ''n'' bit fields of ''c'' such that
     63''v,,i,,,''=''f''(''c,,2i,,'', ''c,,2i+1,,'').
     64See the list of [wiki:IDISA_Horizontal IDISA Horizontal Packing] operations for the
    6665individual operations and their semantics.
    6766
     67=== IDISA Expanding Operations ===
     68
     69See the list of [wiki:IDISA_Expanding IDISA Expanding] operations for the
     70individual operations and their semantics.
     71
     72=== IDISA Field Movement Operations ===
     73
     74See the list of [wiki:IDISA_Movement IDISA Field Movement] operations for the
     75individual operations and their semantics.
    6876
    6977
     
    92100
    931011. For example,
    94 consider the implementation of simd_hl<2>::add(a), where
     102consider the implementation of simd<2>::add_hl(a), where
    95103addition is natively supported for only larger field widths.
    96104A direct implementation requires 1 shift, two mask and one add
    97105operation.
    98106
    99  simd_hl<2>::add(a) = simd<16>::add(simd<16>::srli(a, 1) & simd<2>::constant(1), a & simd<2>:constant(1))
     107 simd<2>::add_hl(a) = simd<16>::add(simd<16>::srli(a, 1) & simd<2>::constant(1), a & simd<2>:constant(1))
    100108
    101109But one of the masks can be eliminated by taking advantage
    102110of the properties of 2-bit subtraction.
    103111
    104  simd_hl<2>::add(a) = simd<16>::sub(a, simd<16>::srli(a, 1) & simd<2>::constant(1))
     112 simd<2>::add_hl(a) = simd<16>::sub(a, simd<16>::srli(a, 1) & simd<2>::constant(1))
    105113
    106114=== IDISA Test Generator ===